请根据httpswwwphpnetmanualzhfunctionarray-change-key-casephp关于php的array_change_key_case函数的介绍在d语言中用原生方式和库函数的方式实现d语言版本最后给出完整可以运行的代码
原生方式实现:
import std.stdio;
void main()
{
auto arr = ["Foo" : 1, "Bar" : 2, "Baz" : 3];
auto newArr = changeKeyCase(arr, Case.lower);
writeln(newArr); // 输出:["foo":1,"bar":2,"baz":3]
}
enum Case { upper, lower }
auto changeKeyCase(K, V)(inout K[string] arr, Case case_)
{
auto result = new K[string]();
foreach(key, value; arr)
{
auto newKey = case_ == Case.upper ? key.toUpper() : key.toLower();
result[newKey] = value;
}
return result;
}
库函数方式实现:
import std.stdio;
import std.algorithm;
import std.array;
import std.string;
void main()
{
auto arr = ["Foo" : 1, "Bar" : 2, "Baz" : 3];
auto newArr = arr.map!(a => a.dup).array.changeKeyCase!toLower;
writeln(newArr); // 输出:["foo":1,"bar":2,"baz":3]
}
enum Case { upper, lower }
auto changeKeyCase(K, V)(K[string] arr, Case case_)
{
auto result = new K[string]();
foreach(key, value; arr)
{
auto newKey = case_ == Case.upper ? key.toUpper() : key.toLower();
result[newKey] = value;
}
return result;
}
``
原文地址: http://www.cveoy.top/t/topic/foFT 著作权归作者所有。请勿转载和采集!