我尝试编译以下代码:
import std.algorithm;
void main()
{
string[] x = ["ab", "cd", "ef"]; // 'string' is same as 'immutable(char)[]'
string space = " ";
char z = joiner( x, space ).front(); // error
}
Run Code Online (Sandbox Code Playgroud)
dmd带有错误的结尾编译:
test.d(8): Error: cannot implicitly convert expression (joiner(x,space).front()) of type dchar to char
Run Code Online (Sandbox Code Playgroud)
更改char z为dchar z确定错误消息,但我很感兴趣,为什么它出现在第一位.
为什么结果joiner(string[],string).front()是dchar而不是char?
(文档http://dlang.org/phobos/std_algorithm.html#joiner中没有任何内容)
import std.stdio;
void main(){
int n;
while(readf("%d", &n)){
if(n == 11)
break;
writeln(n);
}
}
Run Code Online (Sandbox Code Playgroud)
第一次迭代工作,并打印n,但之后readf()永远不会返回.
该文档只有一行解释readf():
uint readf(A ...)(以char []格式,A args);
Run Code Online (Sandbox Code Playgroud)Formatted read one line from stdin.
我做错了吗?或者有什么问题readf()吗?我只需要从标准输入中读取数字.
使用:DMD 2.054 64位
我正在做一个项目,在某个时刻我需要显示一个月的时间,这些天仍然可用。有一个功能可以计算哪些日期可用。我的同事说:“哦,我们知道,您应该返回a BitVector32。这是使用布尔值列表时最有效的方法。” 我会用一个List<bool>或类似的东西。BitVector32在您实际使用位时,对我而言,A 似乎是低级内容。
所以,问题是。您是否应该BitVector32在需要少于32个布尔值的布尔值列表时使用Every,还是仅将其用于低级内容?
根据文档,readf应该返回一个uint.但即便是这个简单的例子也无法编译:
你好ð
import std.stdio;
void main() {
int x;
uint r = readf("%s", &x);
}
Run Code Online (Sandbox Code Playgroud)
错误信息:
hello.d(5): Error: expression readf("%s",& x) is void and has no value
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?
我正在使用dmd(Digital Mars D)编译器v2.050.
这篇MSDN文章指出X509Store该类IDisposable在.NET 4.5中实现.早期版本的.NET不是这种情况.
即使我安装了Windows 8.1,Visual Studio 2013,所有.Net版本,从2.0到4.5.1,我只能看到X509Store最新的System.dll(v4.0.30319,又名.NET 4.5)中的.NET 4版本.VS对象浏览器还显示X509Store在System.dll v4.0.30319中没有实现IDisposable像MSDN文章所说的那样.
我错过了什么以及如何X509Store从.NET 4.5 获得?MSDN错了吗?这不是第一次,但仍然是.是否有一个模糊的Windows Update KB修复程序?
像Java的扫描仪那样在D中是否有流解析器?在哪里你可以nextInt()去取一个int和nextLong()一个long等等.
我正在尝试遵循一个简单的教程,无法使用以下代码:
void main(string args[])
{
auto f = File("test.txt", "w");
f.writeln("Hello, Worlds!");
}
Run Code Online (Sandbox Code Playgroud)
我在Windows上使用dmd编译器.
来自D的文档:
或者,您可以使用auto ref参数声明单个模板化opEquals函数:
Run Code Online (Sandbox Code Playgroud)bool opEquals()(auto ref S s) { ... }<...>
如果struct声明了一个opCmp成员函数,它应该遵循以下形式:
Run Code Online (Sandbox Code Playgroud)int opCmp(ref const S s) const { ... }
为什么以下代码无法编译呢?
import std.stdio;
import std.conv;
struct Fgs {
int v;
this(int iv) {
v = iv;
}
bool opEquals()(auto ref Fgs another) {
return v == another.v;
}
int opCmp(ref const Fgs another) const {
if (this == another) {
return 0;
} else if (this.v < another.v) {
return -1;
} else {
return 1; …Run Code Online (Sandbox Code Playgroud)