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,但这只是冰山一角,还有很多高级特性这里没有体现出来

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 1,195评论 0 2
  • 高阶函数:将函数作为参数 sortted()它还可以接收一个key函数来实现自定义的排序,reversec参数可反...
    royal_47a2阅读 848评论 0 0
  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,...
    jbb_43b0阅读 1,087评论 0 0
  • Python 廖雪峰: https://www.liaoxuefeng.com/wiki/001431608955...
    我的钱包瘪瘪的阅读 674评论 0 0
  • 安装环境h1 先安装Anaconda3-5.3.1-Windows-x86_64 在安装PatchNavicat ...
    saki_1234阅读 708评论 0 0

友情链接更多精彩内容