我知道模板
T add(T)(T a, Tb){
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
但这需要用户询问哪种类型将返回,我想在里面计算哪种类型将返回如下:
T getField( size_t column ){
if( column == 0 )
T = int;
else
T = string;
return to!T("1");
}
Run Code Online (Sandbox Code Playgroud)
我不知道我是否可以投射对象并改变原型.
谢谢大家
std.process有一个很好的shell()功能.
import std.process;
import std.stdio;
void main()
{
string Output = shell("ls .");
writeln("The contents of this directory are:");
write(Output);
}
Run Code Online (Sandbox Code Playgroud)
它在Phobos源中有记录,但不在线.这让我在实际代码中使用它有点犹豫.它是实验性的还是不稳定的,还是在线文档落后?
到目前为止我还没有找到如何最容易检查字符串是否以D中的某个字符开头.
我想要的东西:
if (my_str.startswith("/")) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
我发现最接近的是"chompPrefix"(这里),但这不是我想要的.
首先,D如何创建并行foreach(底层逻辑)?
int main(string[] args)
{
int[] arr;
arr.length = 100000000;
/* Why it is working?, it's simple foreach which working with
reference to int from arr, parallel function return ParallelForeach!R
(ParallelForeach!int[]), but I don't know what it is.
Parallel function is part od phobos library, not D builtin function, then what
kind of magic is used for this? */
foreach (ref e;parallel(arr))
{
e = 100;
}
foreach (ref e;parallel(arr))
{
e *= e;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
第二,为什么它比简单的foreach慢?最后,如果我创建自己的taskPool(并且不使用全局taskPool对象),程序永远不会结束.为什么?
我正在阅读Phobos文档.有时我无法理解某些方法的逻辑.
将给定的年数或月数添加到此日期.负数将减去.轧制和添加之间的区别在于轧制不会影响较大的单元.
也许Phobos不是很好考虑,也许我不明白哪里可以提供帮助.
如果我在2013-07-01添加例如200天,我预计将获得2014年,但不是2013年.
任何人都可以解释这个逻辑吗?
如何删除另一个字符串中出现的所有字符串?我可以使用以下代码执行此操作:
std.array.replace: "the string".replace("the", "")
Run Code Online (Sandbox Code Playgroud)
但我想知道在phobos中是否有专门的功能?
我想在D形式中转换一个数组:
string[] arrayStr = [ "hi, "is fun", "use D programming" ];
Run Code Online (Sandbox Code Playgroud)
我有一个C函数,它采用C变量:
void c_func( const char* format, ... );
Run Code Online (Sandbox Code Playgroud)
我可以:
foreach(str; arrayStr)
func( str );
Run Code Online (Sandbox Code Playgroud)
但这似乎是攻击C变量,我宁愿直接转换为C vararg,
我怎样才能做到这一点?
谢谢
我需要一个函数来测试一个字符串是否以某个后缀结尾.我可以使用'lastIndexOf'来执行此任务,但我想知道是否有标准的phobos功能?
是否存在将无符号整数转换为二进制字符串的Phobos函数?我已经搜索过,但找不到 - 只是想确保我不是通过编写自己的方法来重新发明轮子.
I want to to put the first letter of a string into lowercase in D.
As a string is imutable in D, there doesn't seem to be a simple way.
I came up with this:
string mystr = "BookRef";
string outval = toLower( mystr[0..1] ) ~ mystr[1..$];
writeln( "my outval: ", outval );
Run Code Online (Sandbox Code Playgroud)
Is there an easier way ?