8028


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

[code]

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

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


CC BY-SA 3.0
2015-03-17T13:00:28.707
8027
2015-03-17T13:43:52.553
5246
question
python go
GolangでPython3のmapのようなことをする


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

[code]

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

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


CC BY-SA 3.0
2015-03-17T13:22:27.390
8028
2015-03-17T13:22:27.390
3639
8027
answer


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

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


CC BY-SA 3.0
2015-03-17T13:43:52.553
8029
2015-03-17T13:43:52.553
49
8027
answer