问题标签 [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 投票
2 回答
109 浏览

parsing - 尝试在 D 中无异常地进行字符串到实数的转换

给定一个 数组string,我想找到第一个可以在real不使用异常的情况下成功转换为 a 的数组。

我可以在 Phobos 中看到的唯一相关函数是std.conv.toand std.conv.parse,但是如果它们无法转换字符串,它们都会抛出异常。我想避免例外,因为这对于我的用例来说不会是例外情况。

C#TryParse正好提供了这一点。D中是否有类似的东西?

(当然,我可以自己解析字符串以确定它是否可以转换为real,但这并不重要,所以如果可能的话,我想避免这种情况)。

0 投票
1 回答
297 浏览

d - Using std.array.replace on the result of std.algorithm.map

So I was fiddling around with the D Programming Language today and just could not find any information about how to use std.array.replace on the return type of std.algorithm.map

Unfortunately, this does not work. Instead, it fails with the following error message:

main.d(15): Error: template std.array.replace does not match any function template declaration. Candidates are: /usr/share/dmd/src/phobos/std/array.d(1652): std.array.replace(E, R1, R2)(E[] subject, R1 from, R2 to) if (isDynamicArray!(E[]) && isForwardRange!R1 && isForwardRange!R2 && (hasLength!R2 || isSomeString!R2))

main.d(15): Error: template std.array.replace(E, R1, R2)(E[] subject, R1 from, R2 to) if (isDynamicArray!(E[]) && isForwardRange!R1 && isForwardRange!R2 && (hasLength!R2 || isSomeString!R2)) cannot deduce template function from argument types !()(MapResult!(unaryFun, int[]), int, int)

The documentation of std.algorithm.map says that it uses lazy evaluation, but even using std.array.array to convert the result does not work for me.

I am using DMD 2.064.2.

0 投票
1 回答
166 浏览

sockets - D Socket 编程基本连接脚本

我是 D 编程的新手,所以请原谅我的无知。我正在尝试创建一个基本程序来连接到网站并下载页面或连接到 RESTful API 并下载信息。现在我只需要担心 TCP(流)。我正在使用 std.socket 库。不幸的是,我在网上或在说明正确语法的文档中找不到太多。我已经在 PHP 和 C++ 中完成了这项工作并理解了这些概念,但我真的可以在语法上使用一些帮助。如果有人可以发布示例或链接,将不胜感激!

0 投票
3 回答
149 浏览

d - 元素的就地排序

Phobos 是否有一些可变参数算法来订购 l 值参考参数?就像是

同样order(a, b, c),返回元组的功能变体也很好。

如果没有,我想我们应该使用std.algorithm:swap.

另见http://forum.dlang.org/thread/eweortsmcmibppmvtriw@forum.dlang.org#post-eweortsmcmibppmvtriw:40forum.dlang.org

0 投票
1 回答
98 浏览

linker-errors - 由于缺少 _adCmp2 和 _adEq2,DMD 链接失败

我经常在 Ubuntu 13.10 上本地重建和使用 DMD git master。昨天我的 D 工具链无法将所有 D 程序与错误链接:

DMD 的编译输出示例:

当我 grep 时,只有dmd二进制匹配这个符号,而不是 libphobos。我的 dmd 和 libphobos 都是最新的。

我都试过了ld.bfdld.gold

怎么了?

0 投票
1 回答
114 浏览

d - 不可变范围的笛卡尔积

为什么我们不能计算两个不可变范围的笛卡尔积?

以下代码:

抛出:

此外,如果第二个但第一个不可变被删除,它就可以工作。

根据 phobos 实现,其中一个范围是 inputRange,另一个是 forwardRange。为什么会有这样的模板约束?

0 投票
2 回答
181 浏览

bit-manipulation - 操作任何值类型的位

是否有人编写了一些通用函数来扩展core.bitop位操作以适用于任何值类型?

就像是

我知道这相对容易实现,所以我很好奇为什么它还不是 Phobos。

更新:

这是我的第一次尝试:

我的想法是getBit处理所有具有值语义的类型。这就是为什么我需要演员表(我认为)。是否有特征来检查类型是否具有值语义?

还有一个特征可以检查一个类型是否支持特定的操作,比如按位和&?我总是可以使用__traits(compiles, ...),但标准化很好。

为了让它变得更好,我想我需要一个支持位操作的 T 的显式重载,以使这个变体@safe 对吗?在我上面的通用解决方案中,我需要cast@unsafe。

另见:http: //forum.dlang.org/thread/tekrnzkemcbujbivvfpv@forum.dlang.org#post-tekrnzkemcbujbivvfpv :40forum.dlang.org

0 投票
1 回答
65 浏览

replace - D:转义字符串中的空格

我有一个字符串"foo bar baz",想把它变成"foo\ bar\ baz". 缺少手动黑客方法(调用split,然后使用适当的分隔符重新加入),还有其他方法可以做到这一点吗?replacePhobos 中是否存在类似函数的功能?

0 投票
1 回答
125 浏览

d - BinaryHeap 中数组的奇怪行为

Node我有一个使用引用其他对象的对象的树状结构NodeNode是一类。现在,我正在编写的例程之一需要一个最低优先级队列,我正在使用std.container.BinaryHeapand来实现它std.container.Array。我将其实例化如下:

作为例程的一部分,我将元素插入heapusinginsert并从中删除元素 using removeAny。现在,该例程正常工作,但之后,由于节点丢失,树状结构中断(我的不变量失败)。这是怎么回事,为什么会这样?

0 投票
1 回答
172 浏览

documentation - Phobos 文档的离线副本

有没有办法让我在此处获得 Phobos 文档的离线(最好是可搜索的)副本?