D语言之语句

参考自d程序设计语言---我的博客http://my.oschina.net/u/218155/blog?fromerr=SwOkb7Sw fllow me

D语言的语句的语法和c语言和java基本一致,只是有些特别的东西

if else   while for do while  之类的同c,java一致,不再赘述。

看看一些特别的

    定义内部变量,在函数内部定义内部变量不能重新声明可以复制

int ib = 12;
{
	//int ib = 12;//error
	ib = 112;
 }

静态条件编译,有点c中的类似#ifdef   #endif

只是static if里面的值只能是全局的,确定值的变量

//static if(ib > 100){//error
	static if(ShowStatic.max > ShowStatic.min){
		writeln("staic 1");
	}else{
		writeln("static 2");
	}

final switch强制覆盖所有分支

final switch(s1){
		case ShowStatic.min:
			writeln("min");
			break;
		case ShowStatic.max:
			writeln("max");
			break;
	}

用with定义结构的变量

point p;
with(p){
	x = 1;
	y = 2;
}

退出时执行的scope(success) scope(faild)   他们采用栈的方式退出,下面代码会输出sucess2,sucess1

scope(success){
	writeln("sucess1");
}


scope(success){
	writeln("sucess2");
}


import std.stdio;

int a = 1;
enum ShowStatic {min,max};

struct point {
	int x,y;
}

void main() {
	a = 2;
	//定义内部变量
	writeln(a);
	{
		int a = 1;	
		writeln(a);
	}
	writeln(a);

	int ib = 12;
	{
		//int ib = 12;//error
		ib = 112;
	}
	writeln(ib);
	if( ib > 100){
		writeln("ib > 100");
	}else{
		writeln("ib <= 100");
	}

	//static if(ib > 100){//error
	static if(ShowStatic.max > ShowStatic.min){
		writeln("staic 1");
	}else{
		writeln("static 2");
	}

	switch(a){
		case 1:
			writeln("1 case");
			break;
		case 2:
			writeln("2 case");
			break;
		default:
			writeln("other case");
			break;
	}
	enum ShowStatic s1 = ShowStatic.min;

	final switch(s1){
		case ShowStatic.min:
			writeln("min");
			break;
		case ShowStatic.max:
			writeln("max");
			break;
	}

	auto i = 1;
	do{writeln(i);i++;}while(i<3);
	i = 1;
	while(i<3){writeln(i);i++;}
	for(i = 1;i<3;i++)writeln(i);

	foreach(elem;1..3)writeln(elem);

	int a[] = [1,2,3];
	foreach(ref elem;a){
		elem *= 2;
	}
	writeln(a);

	auto arr = ["k":1,"d":2];
	foreach(string k,ref int v;arr){
		writeln(k,",",v);
		v *= 2;
	}
	writeln(arr);;

	 point p;
	with(p){
		x = 1;
		y = 2;
	}

	try{

	}catch(Exception e){

	}
	finally{

	}
	//mixin
	//mixin(import("mixin.d"));

	scope(success){
		writeln("sucess1");
	}


	scope(success){
		writeln("sucess2");
	}



}












转载于:https://my.oschina.net/u/218155/blog/604298

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值