GolangでPython3のmapのようなことをする


Golangでpython3のmap関数のようなものを探しています。  
python3では

[code]

    
    list(map(str.upper, ["a", "b", "c"])) # ["A", "B", "C"]
    
    
[/code]

というふうに簡単にリストの要素それぞれに対して関数を使えるのですが、Golangではどうすればいいのでしょうか?




GoにはPythonの`map`にあたるものはありません。  
基本的にループを使うことになります。

[code]

    array := []string{"a", "b", "c"}
    for i, s := range array {
        array[i] = strings.ToUpper(s)
    }
    
[/code]

一応、リフレクションを使えば`map`風のものを実装できないこともないですが、コンパイル時のチェックができないので推奨されません。




Rob Pike氏による <https://github.com/robpike/filter/> が存在します。

ただ、本人曰く「forループを使え」とのことです。

