如何在数组前插入元素?
How to insert element before array?
O 想要遍历数组,如果数组元素以所需值开头,则在它之前插入另一个值。
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[]'
总结 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));
}
O 想要遍历数组,如果数组元素以所需值开头,则在它之前插入另一个值。
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[]'
总结 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));
}