yidabu 2007-4-27 06:39
D语言基础之Pragmas,Expressions,Statements
D语言基础之Pragmas,Expressions,Statements知识若不分享 实在没有意义 http://www.d-programming-language-china.org 20070427点击下面网址查看原文:http://www.d-programming-language-china.org by: 燕良 from: http://blog.csdn.net/yanonsoftware/archive/2007/01/10/1479054.aspx Pragma比较简单,常用的两种: [Copy to clipboard] [ - ]CODE: pragma(msg, "compiling..."); pragma(lib, "foo.lib"); 关于Expressions,Statements还是看代码吧。 [Copy to clipboard] [ - ]CODE: import std.stdio; void main() { tryExpressions(); tryStatements(); } class MyClass { char[] toString() { return "hehe"; } char[] objectToString() { return super.toString(); //调用父类Object的方法 } } void tryExpressions() { //new, delete MyClass ci = new MyClass; delete ci; writefln(ci); // delete会自动设为null // cast int c1 = -1; byte b1 = cast(byte)c1; c1 = 266; byte b2 = cast(byte)c1; writefln("b1 = ", b1, ",b2 = ", b2); // Slice int[] a1 = [5,6,7,8,9]; int[] a2 = a1[0..2]; int[] a3 = a1[$-2..$]; // $相当于length writef("a2: "); for(int i=0; i<a2.length; i++) writef(a2[i],','); writef(" a3: "); for(int i=0; i<a3.length; i++) writef(a3[i],','); writefln(" last in a1 = ", a3[$-1]); // super MyClass mc = new MyClass; writefln(mc.toString()); writefln(mc.objectToString()); // 字符串初始化 char[] szChinese = "中文"; writefln(szChinese); // 初始化数组 int[4] myArray = [2,3,5,7]; // assert(0,"this is a error msg");//Error: AssertError Failure D:DHello ryd3.d(8) this is a error msg // typeid返回一个TypeInfo的实例 TypeInfo t = typeid(int); char[] szTypeName = t.toString(); writefln(szTypeName); TypeInfo t2 = typeid(MyClass); char[] szTypeName2 = t2.toString(); writefln(szTypeName2); // is功能很多 bool s1 = is(int[]); // .. } void tryStatements() { // foreach char[] myStr = "abcd"; foreach(char c; myStr) writef(c,", "); writefln(); foreach(int i,ref char c; myStr)//i是index,ref关键字相当于引用(yidabu.com 补,在新版DMD中,引用类型参数已经改为ref) { c += i; writef(c,", "); } writefln(); foreach_reverse(char c; myStr) writef(c,", "); writefln(); // switch可以匹配字符串 myStr = "abc"; switch(myStr) { case "affx": writefln("??"); break; case "abc": writefln("ok"); break; } // with } D语言论坛 http://www.d-programming-language-china.org 补充: 上面代码运行,输出信息如下: QUOTE: null b1 = -1,b2 = 10 a2: 5,6, a3: 8,9, last in a1 = 9 hehe test.MyClass 中文 int test.MyClass a, b, c, d, a, c, e, g, g, e, c, a, ok ( lastupdate:20070427 最新文章请访问http://www.d-programming-language-china.org )关于一大步成功社区:yidabu提倡在交流中学习,在分享中提高收集感兴趣的知识,写下心得,通过网络与别人一起分享理解一点就实践一步,收获什么就分享什么,成功就是这样一点点一步步累积起来的网络只是一个工具,只有自己身心提高才是实实在在的。d-programming-language-china.org为大家提供一个学习交流各种知识的平台