D是由Walter Bright开发的多范式系统编程语言,自2006年以来,Andrei Alexandrescu开发。现在,D是一个开源协作。
导入std.stdio; 导入 deimos.openssl.bn; 导入 deimos.openssl.rsa; 常量 KEY_SIZE = 1024; 无效主(字符串[]参数){ if (args.length < 1) { writeln("too few arguments"); } ...
我有一个名为“dprogram.d”的 d 源文件,并在 mac osx 上的终端中使用命令 $ dmd dprogram.d 创建可执行文件。根据官方文档,编译器将
我是 D 编程语言的新手,想在 D 中使用 ncurses。我找到了一个很好的 ncurses D 端口,但我希望能够将其导入到任何源文件中,而无需编写: 环球数据中心 我是 D 编程语言的新手,想在 D 中使用 ncurses。我找到了一个很好的 ncurses D 端口,但我希望能够将其导入到任何源文件中,而无需编写: gdc <files> ncurses.d 有什么办法可以让它每次都包含在内吗? 顺便说一句,我在 debian Gnu/Linux 上使用 gdc。 不。您应该考虑使用构建工具,例如 rdmd,它将自动构建编译器的命令行并添加程序包含的所有模块。 如果由于某种原因,您不想使用构建工具,常见的方法是使用 Makefile。
我在 Windows 7 上使用 DMD 编译器。我只是尝试创建一个全新的 D 文件并编译它,并且会从 DMD 获得巨大的错误转储。最终,我将文件削减回字面意思......
使用rebuild和drebuild编译带有.d扩展名的代码?
我想构建 AsciiAsciiRevolution 所以我检查了它并输入 make $ 制作 重建 AAR.d -oqobj -I~/tango/ -Iycurses/modules -L-lncursesw -dc=ldc-posix-tango -version=Tango /bin/sh: 1: 重建...
我对 D 完全陌生(来自 js),我试图完成本教程,但我陷入了困境: 我的D: /** 返回:参数乘以二 */ int 两次(int x) { 返回 x+x; } /** 对于 e...
我想用D编程语言分割一个字符串,这样空字符串的元素就不会被计算在内。 例子: 输入:这是一个字符串[注意is和a之间有3个空格...
第一个问题: D 数组函数参数总是按引用传递还是按值传递? 另外,该语言是否为数组实现了 Copy on Write ? 例如。: 无效 foo(int[] arr) { // 是本地的
我正在考虑为 Valgrind 的客户端请求 API 创建一个 D 接口。通过修改头文件和反编译内容,我最终可以弄清楚它在做什么,但我想知道是否
错误程序退出,代码为-1073741819 - DerelictSDL2
我正在D中使用SDL2和SDL2_image开发一个应用程序,当我尝试运行我的程序时遇到访问冲突错误-1073741819。我在下面包含了相关代码。该...
在 D 中是否可以告诉垃圾收集器不要扫描特定指针(或其下面的任何内容)?
我有一个非常大的树结构,1)在程序运行期间不经常删除节点,2)从自定义分配器获取其节点,该分配器有自己对块的引用...
我不知道为什么我在网上找不到这个问题的答案。这似乎是一件很简单的事情。 关联数组具有一个 byValue 成员和一个 byKey 成员,用于迭代值和键。
我需要执行一个动作N次。 D 中最好的方法是什么? for(uint i=0; i 我需要执行一个动作N次。 D 中最好的方法是什么? for(uint i=0; i<N; i++) action(); foreach(uint i; 0.. N) action(); 也许有更好的东西?理想情况下,我想要 Groovy 的 / Ruby 的 times 例如 N.times { action(); } 可能吗? 是的,这是可能的 import std.stdio; import std.traits; void foo() { writeln("Do It!"); } void times(T,N)(N n, T action) if (isCallable!T && isIntegral!N) { static if (ParameterTypeTuple!action.length == 1 && isIntegral!(ParameterTypeTuple!action[0])) foreach (i; 0 .. n) action(i); else foreach (i; 0 .. n) action(); } void main(string[] args) { 10.times(&foo); 10.times({writeln("Do It!");}); 10.times((uint n){writeln(n + 1, " Round");}); } 带参数支持的版本: import std.stdio; import std.traits; void foo() { writeln("Do It!"); } struct Step { alias n this; size_t n; this(size_t i) { n = i + 1; } } struct Index { alias n this; size_t n; } void times(T,N,A...)(N n, T action, A args) if (isCallable!T && isIntegral!N) { alias PTTAction = ParameterTypeTuple!action; static if (PTTAction.length >= 1) { alias FP = PTTAction[0]; static if (is(Index == FP) || is(Step == FP)) foreach (i; 0 .. n) action(FP(i), args); else action(args); } else foreach (i; 0 .. n) action(); } void main(string[] args) { 10.times(&foo); 10.times({writeln("Do It!");}); 10.times((Step n){writeln(n, " Step");}); 10.times((Index n, string msg){writeln(n, msg);}, " Index"); stdin.readln; } 更新: 为了获得更好的性能,您可以使用别名模板参数进行操作: void times(alias action,N)(N n) if (isCallable!action && isIntegral!N) { static if (ParameterTypeTuple!action.length == 1 && isIntegral!(ParameterTypeTuple!action[0])) foreach (i; 0 .. n) action(i); else foreach (i; 0 .. n) action(); } void main(string[] args) { 10.times!(foo); 10.times!({writeln("Do It!");}); 10.times!((uint n){writeln(n + 1, " Round");}); } 也许是这样的? void loop(int n, void delegate() func) { foreach (i; 0 .. n) { func(); } } 用途: loop(10, { writeln("Hello World!"); });
以字符串为键的字符串数组的 Dlang 关联数组具有意外行为
以下代码的输出并不像我想象的那样。看来对 testAA.require() 返回的字符串数组进行更改不会反映在关联数组中。我
我现在正在做一些非正统的链接,可以预见的是我遇到了一些问题。 然而,我已经完成了所有常规科目,但问题仍然存在。 我有一个 D 源文件...
我正在尝试在这段代码中使用 emplace : 类运动工厂{ 民众: this(双倍速度、双倍重力、双倍角度){ this.velocity = 速度; ...