问题标签 [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.

0 投票
1 回答
98 浏览

d - phobos(D 的标准库)是否包含字符串类型的“endsWith”?

我需要一个函数来测试字符串是否以某些后缀结尾。我可以使用“lastIndexOf”来完成这项任务,但我想知道是否有标准的 phobos 功能?

0 投票
1 回答
65 浏览

d - 用于将 uint 转换为二进制字符串的 Phobos 库函数

有没有将无符号整数转换为二进制字符串的 Phobos 函数?我已经搜索过,但找不到 - 只是想确保我不会通过自己编写轮子来重新发明轮子。

0 投票
2 回答
367 浏览

function - 如何在 D 中模拟标准库函数

我有一个函数,它在文件名上调用 isFile(来自 std.file),然后继续追加 .1、.2、.3 等,检查其中的每一个是否存在。

我想对函数进行单元测试,但为此我需要模拟 isFile。

我环顾四周,找到了模拟类而不是单个函数的方法。

0 投票
1 回答
100 浏览

json - std.json - 与 TRUE、FALSE 和 NULL 值有点混淆

作为我正在处理的程序的一部分,我正在查看std.json库,我对如何从JSONValue类型被推断为 或 的 sTRUEFALSE获取数据感到有些困惑NULL

例如,如果我解析以下 JSON:

然后,我可以通过执行以下操作来提取属性中保存的字符串"foo"

但假设我有这样的 JSON:

我需要做什么才能获得 和 的属性"foo"值?"bar""baz"

0 投票
1 回答
75 浏览

json - std.json - 检查 JSONValue 是否具有特定字段的任何方法

假设我有一个未知的 JSON,我想检查它是否有类似这样的形式:

任何东西在哪里stuff——整数、对象等等。如果我做这样的事情:

我会得到一个段错误。有什么方法可以优雅地处理这个问题(返回 null、抛出异常、除了段错误之外的任何东西)?

0 投票
1 回答
144 浏览

d - std.algorithm.find 是否应该要求引用范围元素?

我一直在研究基于类的有限随机访问范围。在对其进行一些测试时:

我在 GDC 4.9.2 中遇到了这个编译错误,关于上面片段中的最后一行:“algorithm.d|4838|error: foreach: cannot make e ref”

错误指向std.algorithm.find(find_if 变体,采用范围和谓词)中的这段代码,它确实引用了每个元素foreach

这很可能发生,因为我提供了一个opApply不提供ref参数的实现(该类也不ref向任何其他成员函数提供返回类型)。

我可以改变它,但真正困扰我的是,现在范围类符合函数的先决条件,并且foreach迭代仍然应该与它们一起工作。从文档中引用:

结构和类对象的迭代可以用范围来完成。对于foreach,这意味着必须定义以下属性和方法:

特性:

  • .empty 如果没有更多元素,则返回 true
  • .front 返回范围的最左边的元素

方法:

  • .popFront() 将范围的左边缘向右移动一位

所有这些都提供了(否则它不会是随机访问范围),所以它应该使用它们。相反,它可能正在寻找下面描述的替代迭代方法:

如果聚合表达式是结构或类对象,并且范围属性不存在,则 foreach 由特殊opApply成员函数定义,foreach_reverse 行为由特殊opApplyReverse成员函数定义。这些函数具有以下类型:

int opApply(int delegate(ref Type [, ...]) dg);

根据我的解释,不应该寻找。

也 quoting std.algorithm.all,这似乎也不需要迭代引用:

bool all(Range)(Range range) if (isInputRange!Range && is(typeof(unaryFun!pred(range.front))));

当且仅当在输入范围范围内找到的所有值 v 都满足谓词 pred 时返回 true。(至多)对 pred 执行 Ο(range.length) 评估。

那么这是 Phobos 库中的一个错误,std.algorithm.find应该首先按值迭代吗?还是我错过了什么?

0 投票
2 回答
255 浏览

file-io - 来自文件的字节 InputRange

如何从文件中轻松构建原始的逐字节 InputRange/ForwardRange/RandomAccessRange?

0 投票
2 回答
242 浏览

datetime - 日期滚动在哪里有用?

我正在阅读 Phobos 文档。有时我无法理解某些方法的逻辑。

日期卷

将给定的年数或月数添加到此日期。负数将减去。滚动和添加之间的区别在于滚动不会影响较大的单位。

也许是火卫一不好考虑,也许我不明白它在哪里有帮助。

如果我添加到 2013-07-01 例如 200 天,我希望得到 2014 年,而不是 2013 年。

有人能解释一下逻辑吗?

0 投票
1 回答
178 浏览

d - 从D中的字符串中删除子字符串

如何删除另一个字符串中所有出现的字符串?我可以使用以下代码执行此操作:

但我想知道在火卫一中是否有专门的功能?

0 投票
1 回答
86 浏览

d - 为什么我不能将 std.algorithm.count 与谓词函数一起使用

以下代码无法编译:

带有错误消息:

但是[标准库(http://dlang.org/phobos/std_algorithm_searching.html#.count)清楚地表明,有一个谓词的重载,计算谓词返回true的count所有元素。R那么为什么当我尝试使用count这种方式时编译器会抱怨呢?