Static Import, Renamed Import, Selective Import
D 0.163
Jul 18, 2006
New/Changed Features
- Object.opCmp now throws an error. Should override it if used. Breaks existing code.
- Imports now default to private instead of public. Breaks existing code.
- Added static imports, renamed imports, and selective importing.
なんだか import が拡張されたようだ.
ドキュメントのサンプルそのまんまだけど一応試してみた.
当該部分のドキュメント: http://www.digitalmars.com/d/module.html
std.stdio モジュールのシンボル一覧: http://www.digitalmars.com/d/phobos/std_stdio.html
Static Import
// シンボルが名前空間に import されないので
// std.stdio.* は完全な名前が必要
static import std.stdio;
void main()
{
std.stdio.writefln("test"); // 完全な名前なのでok
//writefln("test"); // 不完全なのでエラー
}
Renamed Import
// std.stdio を io の名前で import
import io = std.stdio;
void main()
{
io.writefln("test"); // ok
//std.stdio.writefln("test"); // 完全な名前はエラー
//writefln("test"); // 不完全な名前でもエラー
}
Selective Import
// std.stdio から writef を import
// writefln を print の名前で import
// その他のシンボルは import されない
import std.stdio : writef, print = writefln;
void main()
{
writef("test"); // ok
//std.stdio.writef("test"); // 完全な名前はエラー
//writefln("test"); // print に改名しているのでエラー
print("test"); // writefln を改名したものなのでok
//fwritefln(stdout, "test"); // import されていないのでエラー
}