d相关内容
我在开发API时经常在主函数中编写测试代码,但由于D已集成单元测试,所以我想开始使用它们。 我当前的工作流程是在下面的代码中,我有一个脚本来监视任何.d文件中的文件更改,如果脚本找到修改后的文件,它将运行 dub build 问题在于 dub构建似乎没有构建单元测试 module foo struct Bar {..} unittest { ... //一
..
我看到D有期货,并且可以创建线程,但是是否有类似“ Dart”的期货/承诺(或者,如果您使用的是库,我猜是JavaScript)吗? 我希望能够编写这样的代码- // //不是D代码,因为我记不清所有语法! // auto fut = myfile.read(); fut.then(function(data){ //当将来完成 }时异步处理数据;
..
好,根据 http://dlang.org/const-faq.html# head-const 不能在D中具有指向非const的const指针。但是有一个好的实践:在const类中声明一个字段,如果您忘记初始化它,编译器会告诉您。有什么方法可以保护自己,避免忘记D中类的初始化指针字段? 解决方案 是: void main(){ // ConstPointerToNonConst
..
在编译时如何枚举结构或类中的名称和类型? 即执行以下操作: struct Foo { int x; int y; } 字符串序列化!(A)(A a){ ... magic ... } auto f = Foo(1,2); 序列化(f); -> “ x:1,y:2” 谢谢 克里斯。 解决方案 像这样: forea
..
请问这是否是在 D 中初始化动态多维数组的最佳实践。在他们的语言参考中有关于数组的部分,但我不确定它是否超出了我要完成的工作。 class Map { Tile [] [] tile; this(单位宽度,单位高度){ tile.length = height; foreach(ref tilerow; tile) tilerow.length = width; }
..
我是D编程语言的新手,有一个非常简单的问题。 我想一次编译一个D脚本库,然后在其他库中使用它D项目。 在CI中链接到.lib文件并为其创建了标头,但在DI中找不到类似的东西(甚至还有某种标头) 我将D-IDE用作IDE,将DMD2用作编译器。 解决方案 有.di(D接口)文件可用作标题,这些文件可通过-H编译器开关从您的源文件生成。 无论如何,我见过的库将只包含要导
..
编写代码 struct S { this()//编译时错误 { } } 给我一个错误消息说 仅允许使用@disable且没有主体的结构的默认构造函数。 为什么? 解决方案 这种情况之一比最初预期的要复杂得多。 D与C ++相比,重要且有用的功能之一是,每个单个类型(包括所有用户类型)都有一些初始的非垃圾值,可以在编
..
我为 Linux 下载 GDC ,并尝试建立一个简单的 D 程序。执行“ gdc hello.d -o hello ”后,输出: [root @ localhost nan]#gdc hello.d -o hello / usr / bin / ld:无法识别的选项'-plugin' / usr / bin / ld:使用--help选项使用信息 collect2:错误:ld返回1
..
我正在努力通过名称将参数传递给已定义默认参数值的函数: 导入std.stdio; void main(){ void foo(int x = 1,int y = 2,int z = 3){ writefln(“ x =% s,y =%s,z =%s“,x,y,z); } foo(10,20,30); //可以打印:x = 10,y = 20,z = 30 f
..
D是否有'newtype'(如在Haskell中一样)。 这是一个天真的问题,因为我只是略读D,但Google并未出现有用的东西。 在Haskell中,这是一种使不同类型的同一事物在编译时有所区别的方式,但不会导致任何运行时性能损失。 例如您可以将米,秒和公斤设置为新类型(双精度)。如果您的程序将以米为单位的数量添加到以秒为单位的数量中,则在编译时会出错,但是在运行时就像两个都是
..
是否有一种方法可以在D中动态地从DLL动态加载和调用函数?我希望我的程序能够在启动时也可能在运行时加载插件。 解决方案 它取决于您想要获得的动态。如果要动态加载dll并运行一些预定义的函数,那么Wei Li提供了一个非常好的包装器此处。借助模板的强大功能,它使您可以执行以下操作: //定义函数 别名Symbol !(“ MessageBoxW”,int function(HWND,
..
如何从头开始创建/编写一个简单的XML解析器? 我想知道英文的简化基本步骤是什么,而不是代码示例。 / p> 一个好的解析器如何设计?我知道不应该在解析器中使用正则表达式,但是正则表达式在解析XML中的作用是多少? 推荐使用什么数据结构?我应该使用链接列表来存储和检索节点,属性和值吗? 我想学习如何创建XML解析器,以便可以在D编程中编写一个语言。 解决方案 如果您
..
我想知道D的成熟度和稳定性,以及它是否可以很好地替代C / C ++。 我知道目前有两种标准库(Phobos和Tango)。还是没有统一的标准库吗? 另外我前段时间听说这些语言在GCed /非GCed代码的边界上存在问题。我在D网站上找不到关于它的任何参考,所以这个问题仍然存在吗? 解决方案 D版本1它既成熟又稳定,肯定有人在实际工作中使用它。 Phobos是D曾经拥有或可能曾
..
对于那些使用D开发应用程序的人, 您使用哪个库来构建应用程序? 这些库有很好的文档记录? 您使用过Tango吗? 您是否认为D准备好构建大型应用程序了? 您使用了哪个IDE? 解决方案 请注意,任何C库都可以与D一起使用,因为D可以完全使用支持C ABI。 D对C ++库的支持有限,但对C ++模板库的支持有限。
..
最近我感到不安,因为我达到了C ++(甚至0x)感觉非常有限的地步,所以我开始寻找替代方案。 忘记Java, C#,Python或Ruby。我仍然喜欢C ++的低级特性,而且我不喜欢虚拟机。此外,我是游戏引擎开发人员,因此我必须开发必须非常快速的核心例程,最近我一直渴望代码表现力。 C ++对我来说是一种几乎全部的语言,但是在使用模板方面有很多例外,GCC并没有像我希望的那样优化内容。
..
外面有人在实际应用中使用D吗?如果是这样,您将其用于什么? 尽管缺少知名的大用户,但D似乎对我来说是一种非常令人发指的语言,而且根据 TIOBE 来说,它很受欢迎。 解决方案 我在计算机图形学领域的研究工作中使用了D。我和其他人已经基于使用D完成的工作在我们的领域发表了论文。我认为它绝对可以用于对性能至关重要的中小型研究项目。非常适合研究工作,因为无论如何您通常都是从头开始,因此您无
..
OpenGL或SDL段错误到达类中的第一条语句时。我不知道是什么原因造成的。 类RenderEngine { GLuint vertexArrayId; GLfloat [] vertexBufferData = [ -1.0f,-1.0f,0.0f, 1.0f,-1.0f,0.0f, 0.0f,1.0f,0.0 f ]; GLuint vertexBufferId;
..
我在D程序中遇到一个非常奇怪的问题。 read(“%s”,variable)本身可以正常工作,而readln(variable)本身可以正常工作,但是当我将两者放在一起时,readln()似乎被传递了。 import std.stdio;会同时发生错误。 import std.string; void main() { int x; write(“输入数字:”);
..
何时应该将类型定义为结构或类? 我知道结构是值类型,而类是引用类型。因此,例如,我想知道是否应该将堆栈定义为结构或类? 解决方案 原因#1 选择struct vs class:类具有继承,而结构则没有。如果需要多态性,则必须使用类。 原因2:结构通常是值类型(尽管可以将它们设为引用类型)您可以工作)。类始终是引用类型。因此,如果要使用值类型,请选择一个结构。如果要使用引用类型,
..
我想了解 const ref 和 in 之间的区别,特别是在性能方面。 我知道中的等效于 const scope ,但是 scope存储类意味着什么不能对参数中的引用进行转义(例如,分配给全局变量)。表示?欢迎使用示例代码。 如何确定 const ref 和在中实现功能?我知道使用 ref 不会复制对象,因为它是一个引用,但是对于 in 也是一样吗? 解决方案 1)作用域参数存
..