D语言 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
D语言 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
D语言 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 boost
开发语言 D语言
操作系统 跨平台
软件类型 开源软件
所属分类 其他
开源组织
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-10-04

软件简介

D语言(DLang)是一种通用编程语言,具有静态类型、系统级访问和类C语法。D语言编程开发快、读代码快、运行快!

D语言起因是为了改进C++。它完全兼容C的二进制,可编译为本地码,有GC也可手动管理内存,语法上借鉴了 C++、C#、Java 等众多语言,同时也被 Vala、Swift、C++  等语言所借鉴,模板则 在C++的基础上做了相当大的扩充。D 语言既有 C 语言的强大威力,又具有相当于 Java 和 PHP 的开发效率。它是一种集垃圾回收、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、支持并行计算、内建基本运行时信息的系统级编程语言。

下面是一段简单的D语言的代码示例。

import std.stdio;       // 以使用 writefln()

void main(string[] args)
{
    foreach(i, a; args)
    {
        writefln("args[%d] = '%s'", i, a);
    }
}

 

使用D语言类似 PHP 的关联数组示例:

import std.stdio;       // 以使用 writefln()

void main(string[] args)
{
    // 定义字符串和字串关联数组
    string[] [string] container;

    // 使用波浪线连接符把关联数组的值加入
    container["Anya"] ~= "scarf";
    container["Dimitri"] ~= "tickets";
    container["Anya"] ~= "puppy";

    // 使用 foreach 循环输出所有的人
    foreach (string person, string[] items; container)
        display_item_count(person, items);
}

void display_item_count(string person, string[] items)
{
    writefln(person, " is carrying ", items.length, " items.");
}

使用 D语言快速构建 HTTP 服务器示例:

import hunt.http;

void main()
{
    auto server = HttpServer.builder()
        .setListener(8080, "127.0.0.1")
        .setHandler((RoutingContext context) {
            context.write("Hello World!");
            context.end();
        }).build();

    server.start();
}

 

展开阅读全文

代码

评论

点击加入讨论🔥(8) 发布并加入讨论🔥
发表了资讯
2022/05/17 07:11

D 语言 / DLang 2.100.0 发布

D 语言 / DLang 2.100.0 已正式发布。此版本包含 22 个主要更改和 179 个已修复的 Bugzilla 问题。 主要变化 改进 C++ header gen @mustuse强制返回类型错误检查的新属性 支持 contract 不变版本标识符 添加 .tupleof 静态数组的属性 Zlib 更新到 1.2.12 std.functional 引入新函数 bind 引入不可传递的 inout 返回,以及更多改进 使用 ImportC 在 C 源码中导入 D 代码模块 从 D 2.099.0 开始,可通过__import 关键字直接将 D ...

15
2
发表了资讯
2022/04/09 07:10

D 语言/DLang 2.099.0 发布

D 语言/DLang 2.099.0 已于上月发布。 公告显示,这是一个重大版本,更新亮点包括: D 代码模块可通过 ImportC 被导入 C 代码中 引入抛出表达式 (throw expression) PE/COFF 输出现在是 DMD 在 Windows 上的默认输出 …… 详情查看 Changelog。 使用 ImportC 在 C 源码中导入 D 代码模块 从 D 2.099.0 开始,可通过__import关键字直接将 D 代码模块导入 C 文件。 // dsayhello.d import core.stdc.stdio : puts; extern(C...

7
2
发表了资讯
2021/11/02 08:00

D 语言/DLang 2.098.0 发布

D 语言(DLang) 2.098.0 版本已发布,公告显示,DLang 2.098.0 现在以 DMD 2.098.0(D 编译器)和 LDC 1.28.0(基于 LLVM 的 D 编译器)的形式提供。此外,D 语言已经支持 OpenBSD。 此版本包含 17 项目主要变更,同时修复了 160 个 issue。 编译器变更 添加别名赋值 (Alias Assignment) 功能 通过 ImportC 编译器从 D 语言访问 C 语言的声明 使用 syntax (args) => {} 会触发一条 deprecation 消息 对生成 C++ 头文件的改进 默认...

53
2
发表了资讯
2021/03/22 14:21

D 语言/DLang 2.096.0 发布,增强跨平台能力!

DMD 2.096.0 正式发布更新,DMD 是 D语言官方推出的编译器,此版本包含了 17 项主要变更,同时修复 81 个已知bug。相信过几天 LDC 也会跟进到本次大更新!这个版本有 54 个开发者进行参与,非常感谢他们为 DLang 的发展做出的贡献。 编译器变更 x86_64 Posix 平台下的 D ABI 有所更改 新增类型:__c_complex_float、__c_complex_double 和 __c_complex_real 不再支持构造函数复制和块复制(postblit) DMD 的 JSON 输出现在会包含...

12
2
发表了资讯
2021/01/13 07:42

D语言 (DLang) 2.095.0 发布,增强对 Objective-C 支持

DLang 2.095.0 版本现已发布,该版本主要是增强了对 Objective-C 的支持,增加了声明 Objective-C 协议的能力,以及整个编译器、库和工具的改进。共包括了来自 61 位贡献者的 27 个主要更改和 78 个修复程序。一些亮点内容如下: C ++ header 生成 一段时间以来,DMD 已经包含了通过 -CH 命令行选项从 D 源代码生成 C++ header 文件的实验性支持,以便于从 C++ 中调用 D 库。例如,给定以下 D 源文件。 cpp-ex.d extern(C++)...

7
2
发表了资讯
2020/09/02 08:26

年薪 50000 美元,D 语言基金会招聘开源社区工作人员

D 语言基金会正在招聘非编程职员,人头由 Symmetry Investments 资助。 第一个职位是 D Pull Request/Issue Manager。目前 D 语言的源码库与 Bugzilla 库中有一些问题和 pr 都得不到及时处理,这项工作显得很是被动。D 基金会希望找到一两个人完成这一部分工作,一人的话每年薪资 50000 美元,找到两人则每人每年 25000 美元。 理想的候选人需要熟悉 git、GitHub 和 Bugzilla,对 D 足够熟悉,能够审查简单的 pr,能够识别何时需...

22
3
发表了资讯
2020/07/14 18:07

D语言 2.093.0 发布,改进 GC!

D语言是一个性能接近于 C++ 的现代风格编程语言,具有强大的语言表达力,语法简单的像 PHP,前面几个重要的版本中对苹果 ARM64 架构进行了支持,相信不久就可以看到基于D语言的游戏引擎运行于 iOS 平台之上!在服务端领域功能完备的 Hunt Framework 3.3.0 稳定版也即将发布!我们相信经过众多D语言开发者的不断努力即将看到 DLang 在全平台都可施展拳脚,其中包含 服务端、桌面端、iOS、Android、WebAssembly 以及嵌入式开发平台...

60
6
发表了资讯
2020/05/22 12:41

D语言 / DLang 编译器 2.092.0 发布,增强根基!

D语言近期迭代非常快,以便对基础设施和生态提供更好的支持,接受一些新的特性同时抛弃一些旧的实现,近期官方社区还在讨论 D语言 3.0 的一些规划。 现在 D语言无论是游戏引擎的发展还是网络服务领域的生态都得到了很好的积累,让我们更期待这两个领域的进一步发展。 DLang 本次版本是 2.092.0 附带 15 个主要更改和 44 个固定 Bugzilla 问题。非常感谢 47 位贡献者,他们使 2.092.0 成为可能。 编译器更改 CLI 切换器 -revert=...

12
4
发表了资讯
2020/04/20 10:25

DLang 2.091.1 发布,修复版本提升可靠性

DLang 2.091.1 有 9 个固定的Bugzilla问题修复,更多开发者投入到 2.092.0 的大版本开发中,对苹果 iOS 平台的支持也加入了更多的测试用例。 DMD 编译器回归 Bugzilla 20130: ICE 在从字符串转换到其他数组类型时,由于__ArrayCast 没有写入的问题 Bugzilla 20730: [REG 2.091] __traits(compiles) 如果编译中出现任何未标记错误就会失败 DMD编译器错误修复 Bugzilla 18651: ice: 当构建这三个琐碎的文件时在 glue.d:777 会出现...

1
2
发表了资讯
2020/03/16 10:02

D语言/DLang 2.091.0 发布

D语言官方编译器 DMD 2.091.0 提供了 18 个主要更改和 66 个已修复的 Bugzilla 问题。非常感 55 位贡献者使 2.091.0 成为可能! 编译器改进 类的释放器 deallocator 从语言中移除 可以使用 GNU 错误样式返回行号 从 extern(C|C++) 声明中添加实验C++头报头 运行时改进 在某个地方添加了丢失的 pthread_attr_destroy 扩展了 core.sys.windows.security 中的绑定 添加了 core.stdcpp.memory.unique_ptr 添加了 TFD_TIMER_CANCEL_O...

11
2
发表了资讯
2019/12/18 18:18

D 语言(DLang)2.089.1 发布,细节改进提升可用性

D 语言 2.089.1 版本是一个修复版本,上个大版本 2.089.0 存在一些改进后的不兼容问题得到了修复,提升了稳定性。 DMD 编译器改进: Bugzilla 15069: [REG2.064] nonsense struct template instantiations still compile Bugzilla 19884: [regression] Error: alias op = op; cannot alias itself, use a qualified name to create an overload set Bugzilla 20348: [Reg 2.089.0-rc.1] Bad debug info for enum forward refer...

5
1
发表了资讯
2019/11/04 14:16

D语言 / DLang 2.089.0 发布,持续改进健壮性

D 语言 2.089.0 版本进行了 11 核心改进以及 66 问题修复, 非常感谢 44 位贡献者,他们使 2.089.0 成为可能。 本次版本主要是一个大的改进修正版,提供了经过修正的 extern(C) mixin 模板中的 mangling,改进运行时模块 core.atomic 中的 atomicFetchAdd、atomicFetchSub 方法, 支持链接驱动参数, 在包管理器 dub 中改进对 LDC 编译器的支持, 以及更多细节问题修复和语言层面的改进。 核心编译器功能主要改进 Deprecate allowi...

16
4
发表了资讯
2019/10/15 14:09

D语言/DLang 2.088.0 发布,增强与 C++ 交互操作

D 语言近些年一直在加紧脚步的开发迭代,改进语言本身的特性,增强易用性和其他语言的互通性,前面几个版本主要是针对 macOS 平台的 Objective-C 进行打通交互性,而一直努力的还有 C++ 标准库的打通,本次版本也对 C++ 的 std::string 和 std::vector 进行打通,进一步改善语言之间的交互性。 DLang 2.088.0 这个版本包含 27 个主要更改和 58 个已修复的Bugzilla问题。非常感谢 58 位贡献者使 2.088.0 成为可能。 编译器的变化...

24
3
发表了资讯
2019/09/07 07:24

D 语言 2.088.0 发布,改进了与 C++ 的互操作性

D 语言 2.088.0 发布了,此版本共修复了 58 个 bug,并对编译器引入了 27 项主要更改。 这是一个工作日版本,并没有什么更新亮点,大部分都是日常维护,不过其中 C++ 互操作方面还是值得一说。 此版本分别在 DRuntime 模块 core.stdcpp.string 和 core.stdcpp.vector 中绑定了 std::string 和 std::vector,使得与 C++ 的互操作性得到了很大的改进。其中存在一个兼容问题,需要注意。在 Linux 上编译时,当 D 使用 GCC 库和链接...

14
4
发表了资讯
2019/07/05 17:43

DLang 2.087.0 发布,DIP1000 等诸多特性实现

D 语言现在的更新频路非常稳定,3 年内没两个月发布一个大版本进行特性更新,此次发布的 2.087.0 附带 22 个主要改进和 44 个Bugzilla问题修复,其中最值得关注的是 DIP1000 特性,已经规划了很多年终于现在可以启用预览,可在编译的时候加入 -preview=dip1000 进行体验。 编译器改进 A new syntax is available to declare an alias to a function type Add Markdown-inspired features to Ddoc scope as a type constraint o...

7
7
发表了资讯
2019/04/08 15:19

D语言/DLang 2.085.1 发布,修复性迭代

本次更新主要是针对上个月发布的 2.085.0 大版本进行更新,修复了 20+ 处问题。 详细更新列表如下: DMD 编译器回归改进 Bugzilla 19655: DMD generates wrong code for some circular dependencies Bugzilla 19656: D compiler fails to resolve circular module dependency when modules are compiled separately Bugzilla 19657: D compiler fails to resolve circular module dependency when modules are compiled togethe...

15
3
发表了资讯
2019/03/04 08:44

D语言/dlang 2.085.0 发布,GC、Objective-C 混编增强

近些年以来 dlang 版本发布节奏稳健,编译器更新越来越实用,这个版本附带了上下文感知断言消息、较低的 GC 内存使用方式、精确的 GC、对链接自定义 GC 的支持、大量的 Objective-C 混编改进,以及对 DUB 的工具链需求。这次发布也结束了对 OSX-32 的官方支持。 DMD 编译器改进: Add support for Objective-C classes Add support for Objective-C instance variable Add support for Objective-C super calls Deprecate Obje...

15
5
发表了资讯
2019/01/21 13:20

D语言/dlang 2.084.0 发布,编译时和运行时增强

dlang 2.084.0 带来了 21 个主要更改和 100 个修复的 Bugzilla 问题。非常感谢 53 位贡献者的参与完成了 2.084.0 这个大版本。 编译器改进 Aliases can be created directly from a __trait. Added -check switch to turn on and off each category of runtime checks. Add -checkaction=D|C|halt compiler switch. -color and -color=on will now always output colorized console output The code generated by mixin statem...

13
4
发表了资讯
2018/05/13 15:39

Dlang 2.080.0 版本发布,系统级编程语言

近期D语言在版本发布迭代速度上有明显提升,此次D语言 2.080.0 版本更新特性如下: 增强编译时特性可用性 提供更好的 Objective-C 兼容 废弃一些早期版本不推荐使用的类和方法 对标准库的多方面改进 提升了编译器和标准库的稳定性,修复了 100 余处 BUG 更多详细更新查看官方的 changelog: https://dlang.org/changelog/2.080.0.html

7
2
发表了资讯
2018/01/05 08:25

DMD 2.078.0 已经发布,做了大量更改

DMD 2.078.0 已经发布,D 是具有类 C 语法和静态类型的系统编程语言。 它将效率,控制和建模能力与安全性和程序员生产力相结合。 更新内容: 编译器更改: opDispatch resolution in with statements Generate header files using do instead of body as per DIP1003 pragma(crt_constructor) and pragma(crt_destructor) were added Subtraction of pointers that point to different types has been deprecated. Variadic tem...

5
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
8 评论
117 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部