D語言遊戲編程(5):D語言基礎之Pragmas,Expressions,Statements

    Pragma比較簡單,常用的兩種:
        pragma(msg, "compiling...");
        pragma(lib, "foo.lib");
    關於Expressions,Statements還是看代碼吧。
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,inout char c; myStr)//i是index,inout關鍵字相當於引用
        {
            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
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章