D语言中国主页  D语言编辑器SciTE4D   DWin库 D语言官方网站
D语言编译器1.x最新版 OpenSource   Tango   webnews  Wiki

查看完整版本: D语言基础之Pragmas,Expressions,Statements

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为大家提供一个学习交流各种知识的平台
页: [1]
查看完整版本: D语言基础之Pragmas,Expressions,Statements