Dlang学习第一天 HelloWord

1.Dlang的历史

Dlang(D语言)是由Digital火星Walter Bright开发的面向对象的多范型系统编程语言。它的发展始于1999年,并于2001年首次发布,D(1.0)的主要版本发布于2007年,目前有D2版本的D语言

2.Dlang 环境安装(windows系统)

下载地址https://dlang.org/download.html



下载exe   一路next   中间选择一下安装目录即可  默认路径在 系统盘:/D


安装好以后打开cmd   输入dmd    



正常情况下是属于正常输出上图的信息


因为dmd 默认安装会自己添加环境变量

若输入dmd  出现:不是内部或外部命令等等错误

就查看一下自己的环境变量配置,如果没报错就请忽略配置环境变量这块


输入path查看  


若是找不到就自己配置一下



上图中我安装的时候是自定义路径  (新手安装安装目录的时候 尽量不要使用中文路径,避免出现意外错误)


bin目录在dmd2/windows下



配置完保存 输入dmd  就会出现类似信息




3 helloword


新建记事本后缀为.d



右键编辑


代码

import std.stdio;//输入输出类


void main()

{

writeln("hello word");//输出语句

}


cd到 hello.d目录下 用dmd编译




要注意报错是


hello.d(1): Error: char 0xff1b not allowed in identifier

hello.d(1): Error: character 0xff1b is not a valid token

hello.d(3): Error: `;` expected

hello.d(3): Error: function declaration without return type. (Note that constructors are always named `this`)

hello.d(4): Error: no identifier for declarator `main()`

hello.d(5): Error: character 0xff1b is not a valid token

hello.d(6): Error: found `}` when expecting `;` following statement

hello.d(6): Error: found `End of File` when expecting `}` following compound statement


不要忘记;号   也要注意不要用中文符号



Hello的四种写法(我抄的原文是:https://www.cnblogs.com/quetzal/p/4433926.html

这是原作者博客


import std.stdio;

{

    writeln("Hello World");

}

版本二:使用C标准库

import core.stdc.stdio;

void main()

{

    puts("hello world");

}

版本三:使用系统调用

import core.sys.posix.unistd;

void main()

{

    write(STDOUT_FILENO, "hello world\n".ptr, 12);

}

版本四:被C调用

D代码(hello.d)

import std.stdio;

extern(C) void hello()

{

    writeln("Hello World");

}

C代码(hello.c)


void hello();

void rt_init();

void rt_term();


int main()

{

    rt_init(); // 初始化D runtime以支持D中的高级特性,如果没有用到可以省略

    hello();

    // ...

    rt_term(); // 释放 D runtime 资源,需与rt_init 配对

    return 0;

}



此被C调用程序的编译方法:

$ dmd -c hello.d

$ gcc -o hello hello.o hello.c -lphobos2

$ ./hello

Hello World

D与C是二进制兼容的,但并不兼容源码,所以编译时要使用二进制文件,另外不要忘记链接 libphobos2 这个库,如果你懂C那不需要我啰嗦原因了


这四个小程序初步展示了D语言的外观,以及每一个系统编程语言必需要做到的与C的交互性,在这点上C++可以无缝的实现与C的互调,D相比C++多了两个函数调用,在实现项目中,多了两个函数调用的编码成本几乎可以忽略,相比Go的方式和Rust的FFI要舒服的多,看上去也很自然

有的朋友可以注意到了,D代码跟C++很像,没错,它非常的C like,但这只是冰山一角,还有很多高级特性这里没有体现出来

你可能感兴趣的:(Dlang学习第一天 HelloWord)