2007-12-8 我第一次接触D语言,尝试了一下,发现效率还蛮高的.
1.在linux 下安装D语言编译器
D语言的编译器目前有2个,DMD和GDC,DMD比较容易配置,
可以从http://www.digitalmars.com/d/dcompiler.html下载最新版
我下载的是dmd.zip包
a. 直接解压dmd.zip包在根目录下 /dmd
b. 设置环境变量
在/etc/profile 文件后面添加一行
[root@localhost /]#vi /etc/profile
export PATH=$PATH:/dmd/bin
c. 使设置的环境变量生效
[root@localhost /]#source /etc/profile
2.写个helloWord 测试一下
a. [root@localhost /]#vi hello.d
void main()
{
printf("hello, world!");
}
b. [root@localhost /]#dmd hello.d
c. [root@localhost /]#./hello
3.不用编译直接当作脚本文件来运行
#!/dmd/bin/dmd -run
/* 声明为脚本文件,并且执行它的是dmd*/
/* Hello World in D
To compile:
dmd hello.d
or to optimize:
dmd -O -inline -release hello.d
*/
import std.stdio;
void main(char[][] args)
{
writefln("Hello World, Reloaded");
// auto type inference and built-in foreach
foreach (argc, argv; args)
{
// Object Oriented Programming
CmdLin cl = new CmdLin(argc, argv);
// Improved typesafe printf
writefln(cl.argnum, cl.suffix, " arg: %s", cl.argv);
// Automatic or explicit memory management
delete cl;
}
// Nested structs and classes
struct specs
{
// all members automatically initialized
int count, allocated;
}
// Nested functions can refer to outer
// variables like args
specs argspecs()
{
specs* s = new specs;
// no need for '->'
s.count = args.length; // get length of array with .length
s.allocated = typeof(args).sizeof; // built-in native type properties
foreach (argv; args)
s.allocated += argv.length * typeof(argv[0]).sizeof;
return *s;
}
// built-in string and common string operations
writefln("argc = %d, " ~ "allocated = %d",
argspecs().count, argspecs().allocated);
}
class CmdLin
{
private int _argc;
private char[] _argv;
public:
this(int argc, char[] argv) // constructor
{
_argc = argc;
_argv = argv;
}
int argnum()
{
return _argc + 1;
}
char[] argv()
{
return _argv;
}
char[] suffix()
{
char[] suffix = "th";
switch (_argc)
{
case 0:
suffix = "st";
break;
case 1:
suffix = "nd";
break;
case 2:
suffix = "rd";
break;
default:
break;
}
return suffix;
}
}
保存为:scripttest.d
[root@localhost /]#chmod +x scripttest.d
[root@localhost /]#./scripttest.d
分享到:
相关推荐
C++语言起步电子书 C++语言起步实际操作实验..
php起步基础知识,对于初学者来说是不错的选择
java语言学习起步之环境配置
为了进一步优化起步控制,分析了湿式双离合器自动变速器的特点,建立了起步过程的动力学建模,以面向对象的思想划分了DCT起步的四个阶段并基于此制定了单离合器起步的控制策略,以江淮汽车自主研发的DCT为目标进行了策略...
出租车起步价14元,含3公里 起步价之后,每公里2.5元 晚上11点之后(含),次日6点前(不含)起步价18元,含3公里 晚上起步价之后,每公里3元 10公里之后,白天每公里3.5元,晚上每公里4.7元 外环的出租车10公里...
Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2编程起步Java2...
模糊控制器分为两层,第一层根据油门开度和油门开度变化率推测驾驶员的起步意图,第二层根据驾驶员的起步意图、分离行程和离合器主、从动盘的速差比判断离合器的接合速度。 为了验证所指定的模糊控制策略的有效性,...
济南起步区(先行区)经纬度
PHP入门学习-PHP起步,PHP语言,用PHP进行Web编程
从零起步学电子,Larry D.Wolfgang
ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南ace起步指南
ARM编程起步, ARM编程起步, ARM编程起步, ARM编程起步 ARM编程起步, ARM编程起步, ARM编程起步, ARM编程起步
JavaFX起步 基础部分 是html格式
完整的起步OA系统说明,适合开发人员参考或是直接运用。
北 京 起步 人力 资源 源码 OA 手机 android
Delphi编程起步机械出版社
ERP从内部集成起步 ERP从内部集成起步 ERP从内部集成起步
零起步 变频器 电子书 讲述的很清楚并且有用
react起步阶段冲冲冲!