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++语言初步理解 - **知识点1: 输出语句** 在C++中,`cout` 是一个预定义的对象,用于标准输出流,通常用来向标准输出设备(通常是屏幕)输出数据。`cout` 通常与 `运算符...
### 新手起步:Perl入门——全面解析Perl编程基础 #### 一、《Perl语言入门》:小骆驼书引领新手入门 《Perl语言入门》作为O'Reilly出版社的经典之作,被广泛誉为“小骆驼书”,是Perl编程语言学习者的首选教材。...
《游戏编程起步》是一本专为初学者设计的教程,旨在引导读者进入充满创意与乐趣的游戏编程世界。这本书精心挑选了近180个不同类型的互动游戏和活动,旨在通过实践来教授编程基础,使学习过程既具有挑战性又富有趣味...
CodeBlocks的灵活性和强大的配置能力也体现在对多种文件类型的支持上,包括但不限于C/C++、AngelScript、CSS、D语言、Fortran77、Python、XML等,甚至可以识别和处理Dev-C++和MSVS工程文件。 在图形编程方面,...
根据提供的文件信息,“PHP编程起步自学教程2.pdf”这一标题及描述表明这是一份关于PHP编程语言的学习资料。虽然给出的部分内容并未包含实际的教学内容,但从文件标题、描述以及标签可以推断出这份资料旨在帮助初学...
【标题】: "零起步教你搭建DISCUZ论坛.doc" 【描述】: "这篇文档将指导初学者如何从零开始搭建DISCUZ论坛,涵盖了论坛的演变历程、所需准备的工作,以及具体步骤,旨在帮助读者了解搭建论坛的过程。" 【标签】: ...
它只是刚刚起步,所以还有更多。 田鼠有点像LISP,但功能是黑盒装的。 哦,它还对效果和处理程序提供了一些支持。 具体语法 原子 A ::= CB B ::= | CB | DB C ::= ...anything but whitespace \^/.!()[]{}...
以下是一些适合小孩接触编程起步的软件和游戏: 1. **Scratch**:由麻省理工学院(MIT)开发的可视化编程语言,通过拖拽积木式的编程块,让孩子们理解基本的编程概念,如逻辑结构、循环和条件语句。 2. **Code.org**...
描述中提到“在linux如何使用ddd,刚刚起步学linux”,这表明内容可能涉及ddd(Data Display Debugger)在Linux环境下的使用教程,适合初学者。 ddd是GNU项目中的一个图形化调试器,它为命令行界面的GDB(GNU ...
《零点起步——PIC单片机常用模块与典型实例》是由闫广明等编著的一本深入浅出的教程,旨在帮助初学者快速掌握PIC单片机的基本操作和应用。这本书详细介绍了PIC单片机的各种核心模块,并通过丰富的实例解析,使读者...
- **知道(zhī dào)**:了解或理解某事。 - **一会儿(yì huìr)**:表示一段时间,通常用于短暂的等待或活动。 2. **短语**: - **给+(谁)+发短信(fā SMS)**:向某人发送短信,如“给我朋友发短信”。 - **...
16. **计费程序**:模拟滴滴快车的计费规则,需要考虑起步价、里程费和时长费,以及不同时间段的价格差异。编写这样的程序需要处理输入数据、计算费用并输出结果。 综上所述,本题主要涵盖Python的基础语法、函数...
1. **初步发展阶段**:此阶段EDA技术刚刚起步,主要集中在简单的电路设计与仿真上,工具较为基础。 2. **集成化阶段**:随着计算机技术的发展,EDA工具开始集成了更多功能,如自动布局布线等高级特性。 3. **系统级...
我们需要理解Spring Boot的`spring-boot-starter-web`起步依赖已经集成了Spring MVC,而Spring MVC支持Spring的`MessageSource`接口,这是处理国际化的核心。 1. **配置文件**: 国际化的核心配置文件是`messages....
5. **硬件接口**:设计中提到了VHDL语言,这是一种硬件描述语言,用于描述硬件电路的行为。在硬件实现部分,可以看到诸如VCCSHURU、INPUTA、OUTPUTA、B[3..0]、C[9..0]和QUSHU1inst1等信号和端口,这些都是构成计价...
- A: 1979年互联网技术还处于起步阶段。 - B: 正确答案。 - C: 1969年ARPANET成立。 - D: 1994年,万维网已经开始流行。 #### 9. 图形图像颜色模型 - **概念**: 不同的颜色模型适用于不同的场合。 - **选项解析...
5. 计算机能直接识别、理解并执行的语言是D.机器语言,因为机器语言是计算机硬件直接执行的指令集。 6. Python程序段`print("x=", x+1)`将输出`x=`后面跟着变量`x`的值加1,由于`x=9`,所以输出是`x=10`。 7. ...
5) 用Verilog HDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。 6) 完成电路全部设计后,通过在DE0开发板上下载实验以验证设计的正确性。 1.2 模块设计说明 1) 车速控制模块 当起停键...