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
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值