原生方式实现:

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;
}
``
请根据httpswwwphpnetmanualzhfunctionarray-change-key-casephp关于php的array_change_key_case函数的介绍在d语言中用原生方式和库函数的方式实现d语言版本最后给出完整可以运行的代码

原文地址: http://www.cveoy.top/t/topic/foFT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录