O想要迭代throw数组,如果数组的元素以所需的值开头,则在它之前插入另一个值。
import std.stdio;
import std.container;
import std.algorithm;
import std.array;
void main()
{
string [] str = ["aa","bb","cc","dd"];
foreach(s;str)
{
if(s.canFind("bb"))
{
s.array.insertBefore('x');
}
}
}
我收到错误:Error: no property 'insertBefore' for type 'dchar[]'
答案 0 :(得分:1)
总结Adam的建议和本地化导入,我们得到一个有效的例子:
void main()
{
import std.stdio;
import std.algorithm;
string [] str = ["aa","bb","cc","dd"];
foreach(ref s;str)
{
if(s.canFind("bb"))
{
s = 'x'~s;
}
}
writeln(str);
}
我还推荐更多功能风格:
void main()
{
import std.stdio;
import std.algorithm;
string [] str = ["aa","bb","cc","dd"];
writeln(str.map!(s => s.canFind("bb")?'x'~s:s));
}