GolangでRubyのmapメソッドと同じ処理をする方法

Golang

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に対応する値を取得して処理を行うことも可能です。

 

参考:

タイトルとURLをコピーしました