标签:helloworld d语言
操作系统:Linux
编译器:gdc
在本文中,将使用三种方法实现Hello Word,分别使用D标准库,C标准库,和系统调用,以展示D语言的基本外观和系统编程能力,仅做抛砖引玉,至于语言方面的知识在后面的文章中会详细介绍
使用D标准库 writeln 函数版本
import std.stdio; void main() { writeln("Hello ", "World!"); }
使用C标准库 puts 函数
extern(C) int puts(const char *); void main() { puts("Hello World!\n".ptr); }
直接使用系统调用 write
extern(C) int write(int fildes, const void *buf, size_t nbyte); void main() { write(1, "hello world\n".ptr, 12); }
如果你有其它语言基础,那么D语言的语法看上去应该不陌生,感觉像C++有没有,不过这只是冰山一角,跟C++的区别还是相当的大的,不过从这三个版本我们可以看出D语言的以下特点
有包的概念
支持可变参数函数(实际上支持非常好,写一个支持可变参数的函数也非常简单)
支持直接调用C函数,只需要有C函数原型的声明即可,当然如果要调用标准C和系统调用以外的C函数只要加编译函数 -lxx 指定要链接的库名即可,与C语言一致。从这一点上可以看出,D在系统编程方面是不输C++的
如果你对C语言不熟悉或者对Linux不熟悉,理解上面的例子可能很困难,首先要想学习D语言,最好要先学习C语言,任何一个定位为系统编程的语言都不能摆脱C语言,对于D对C的兼容是二进制兼容,就是说D可以直接使用C语言编译后的二进制文件,这样做的好处是语法上不必兼容C,可以重新设计语言结构而不会有C语言的问题,C++就是因为从源码上兼容C,所以C的问题C++都有,而且还带来了更多的问题,从这个角度上讲C++的设计有很大的问题,而D的设计就是更好的系统编程语言。
有人可能会问,D语言能做web开发吗,当然能,PHP这么简单的语言都能做D一定是可以的,只不过目前还没有特别全面的框架和相关库程序,如果要做可能考虑直接使用FastCGI,或者使用vibe.d(一个异步IO网络库,看上去有点像Node.js的设计,目前已经做的很好了 详情请关注 http://vibed.org)
本文出自 “李云兴的博客” 博客,请务必保留此出处http://quetzal.blog.51cto.com/3313934/1631558
标签:helloworld d语言
原文地址:http://quetzal.blog.51cto.com/3313934/1631558