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

查看完整版本: D语言基础之Declarations,Types,Properties

yidabu 2007-4-26 19:21

D语言基础之Declarations,Types,Properties

D语言基础之Declarations,Types,Properties知识若不分享 实在没有意义 http://www.d-programming-language-china.org 20070426点击下面网址查看原文:http://www.d-programming-language-china.org        by:        燕良        from:        http://blog.csdn.net/yanonsoftware/archive/2007/01/07/1476393.aspx                首先需要熟悉一下D语言。D语言目前还没有什么书(有一本日文的,不知道小日本怎的对D这么热衷),所能参考的就是D语言的官方文档啦。不太适合编程的初学者,对于有一定变成经验的人来说,倒是挺合适的。英文原文从DMD官方网站可以找到:http://www.digitalmars.com/d/ ;中文翻译:http://blog.csdn.net/uframer/ 。         下面的源码就是针对D语言文档中的没一节中的要点编写的,这是前面三节Declarations,Types,Properties中的主要概念,着重与C/C++不同的地方,并且加入了详细的中文注释。把下面的代码拷贝到一个文本文件中,主要,要存成unicode编码格式才能编译通过。        [Copy to clipboard] [ - ]CODE:                                import std.stdio; // 引入D语言的标准io库, 它是"dmdlibphobos.lib"的一部分; 库文件的查找由sc.ini中的LIB环境变量指定.                                void main()                {                    try                    {                        tryDeclarations();                        tryTypes();                        tryProperties();                    }                    catch(Exception e)                    {                        writefln("There is an error:");                    }                }                                //参考"dmdhtmlddeclaration.html"                void tryDeclarations()                {                    // D语言中的变量在会初始化为默认值                    int myInt;                    uint myUint;                    float myFloat;                    writefln("default of int = ",myInt,                         ", default of uint = ", myUint,                         ", default of float = ", myFloat);                                    // 声明是从右向左读的                    writef("This is an array : ");                    int[4] myArray;                    foreach(int i,int e;myArray)//如果下标越界,则会抛出一个Exception                        writef(i, " = ", e,", ");                    writefln();                                    //auto关键字                    auto myAuto = 99;                    writefln("this is an auto var, sizeof = ", myAuto.sizeof,                                    ", value = ", myAuto);                                                    typedef int MYINT;    //typedef是强类型的                    alias int MYINITA;    //alias对于类型系统则与原来的类型相同                                }                                //参考"dmdhtmld ype.html"                void tryTypes()                {                    //enum可以指定数据类型                    enum ETest : ubyte                    {                        ET_One, ET_Two                    }                                    //使用cast关键字进行显示类型转换                    int a = -1;                    uint b = cast(uint)a;                    writefln("b = ", b);                                    //function关键字用来声明函数指针                    void function(/**//*参数列表*/) myFunctionPtr;                    myFunctionPtr = &tryDeclarations;//指向一个函数                    writefln("myFunctionPtr = ", myFunctionPtr);                                    //delegate可以指向类的成员函数                }                                //参考dmdhtmldproperty.html                void tryProperties()                {                    //每种type都有相同的一些property                    writefln("float.sizeof = ", float.sizeof,                                     ", byte.init = ",byte.init,                                     ", int.max = ", int.max,                                     ", uint.max = ",uint.max);                                    //class和struct可以有property成员                    struct Foo                    {                        int data() { return m_data; }    // read property                                        int data(int value) { return m_data = value; } // write property                                        private:                        int m_data;                    }                                    Foo f;                    f.data = 3;    // same as f.data(3);                    f.data = f.data + 3;    // same as f.data() + 3;                    writefln("f.data = ",f.data);                }        ( lastupdate:20070426 最新文章请访问http://www.d-programming-language-china.org )关于一大步成功社区:yidabu提倡在交流中学习,在分享中提高收集感兴趣的知识,写下心得,通过网络与别人一起分享理解一点就实践一步,收获什么就分享什么,成功就是这样一点点一步步累积起来的网络只是一个工具,只有自己身心提高才是实实在在的。d-programming-language-china.org为大家提供一个学习交流各种知识的平台
页: [1]
查看完整版本: D语言基础之Declarations,Types,Properties