GolangでRubyのmapメソッドのような処理を実装する
Golangで配列の各要素に対して処理を行い、新しい配列を作成する場合は、
range
構文- 内積for文
を使用することができます。
こうすることで、Rubyのmap
メソッドに似た処理を実装することができます。
GolangでRubyのmapと似た処理を実装するコード例
以下は各要素に対して二乗を計算し、新しい配列に追加しています。
numbers := []int{1, 2, 3, 4, 5}
// 新しい配列を作成
squaredNumbers := make([]int, len(numbers))
// 各要素に対して処理を行い、新しい配列に追加
for i, n := range numbers {
squaredNumbers[i] = n * n
}
内積for文を使用する場合はこんな感じ
numbers := []int{1, 2, 3, 4, 5}
squaredNumbers := make([]int, len(numbers))
for i := range numbers {
squaredNumbers[i] = numbers[i] * numbers[i]
}
Golangは、配列やスライスの要素の変更をサポートしていないため、配列を直接変更することはできません。代わりに、新しい配列を作成し、そこに新しい値を追加します。
もし、破壊的な操作を減らしたいなら、内積for文で変数iに対応する値を取得して処理を行うことも可能です。
参考: