问题标签 [phobos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
d - 将 std.algorithm.iteration.sum 与 Duration[] 一起使用
为什么我不能使用std.algorithm.iteration.sum
with Duration[]
?
我认为我可以使用与使用sum
相同的方式,例如int[]
:
但相反,我得到了一个意外的(至少对我来说是意外的)编译错误:
我有点理解编译错误,但我不明白为什么存在限制,因为对我来说,文档中没有任何内容可以解释这一点。
我读过了:
不Duration[]
符合 的约束sum
:
还是我忽略了其他东西?
解决方法很简单 -fold
改为使用。
iterator - 用D语言从一个范围内制作数组
在 D 语言中,从给定范围构造数组的最短方法是什么?
让我有一个迭代器i
。如何制作其元素的数组(按顺序)?
d - 如何在 D 中使用 tolow
我想在 D 中将字符串的第一个字母变成小写。
由于字符串在 D 中是不可变的,因此似乎没有简单的方法。
我想出了这个:
有没有更简单的方法 ?
d - 如何在 Dlang 中检查数组或范围长度至少为 N
对于 N=1,我会std.array : empty
检查长度是否至少为 N,并避免遍历整个输入。
对于N>1(或全N),D语言的惯用方式是什么?
我尝试使用std.range : take
“Lazily 最多只占用一个范围内的 n 个元素。”。它适用于数组,但不适用于范围(当然,除非我将子范围放入数组中):
d - 向 RedBlackTree 添加自定义类型
我想保留一组有序的记录,标准为我提供了 RedBlackTree。记录的类型是 Tuple!(string, uint)。这是它的样子:
现在主要是我使用insert()
方法将记录添加到记录中,但它会导致运行时出现段错误。所以我决定使用 ~= 希望得到更好的错误信息。这是编译器所说的:
错误:不能将类型 Tuple!(string, uint) 附加到类型 std.container.rbtree.RedBlackTree!(Tuple!(string, uint), binaryFun, false)
根据https://dlang.org/phobos/std_container_rbtree.html#.RedBlackTree我必须提供一种类型,以便调用less(a, b)
它返回一个布尔值。所以我继续为它创建了一个类型:
这次编译器抱怨:
错误:无法将类型记录附加到类型 std.container.rbtree.RedBlackTree!(记录,“a < b”,false)
所以问题的要点是,如果我有一个带有 custom 的 RedBlackTree,binaryFun
我如何向它添加元组或自定义类型的实例?
d - D 的`std.sumtype` 在哪里?
我正在开发一个 D 语言项目,我想使用标准库中的一个名为std.sumtype
. 我在 debian oldstable 上,我已经尝试过 GDC 和 LDC。DMD 不可用,因为我使用的是具有 armhf 架构的机器。std.sumtype
尽管它在标准库中,但这些编译器都找不到。我还尝试sumtype.d
从所有三个 D 编译器的 phobos 存储库中下载 3 个不同版本的版本。这些中的每一个都不会编译。我该如何使用它?我在错误的版本吗?