1. ホーム
  2. go

[解決済み] Go Array As Arguments のアンパッキングを解除する

2022-06-01 23:39:18

質問

PythonやRubyでは、配列を引数として解凍するためのsplat演算子(*)がありますね。Javascriptでは、.apply()関数があります。Go で関数の引数として配列/スライスをアンパックする方法はありますか。このためのリソースがあれば、それもまた素晴らしいことです。

これに沿った何か。

func my_func(a, b int) (int) {
    return a + b
}

func main() {
    arr := []int{2,4}
    sum := my_func(arr)
}

もし私が構文的/分類的な間違いを犯しているなら、私は謝ります。私はGoに慣れていないのです。

どのように解決するのですか?

C言語と同様のvararg構文を使用することができます。

package main
import "fmt"

func my_func( args ...int) int {
   sum := 0
   for _,v := range args {
      sum = sum + v
   }

   return sum;
}

func main() {
    arr := []int{2,4}
    sum := my_func(arr...)
    fmt.Println("Sum is ", sum)
}

これで、好きなだけ和算ができるようになりました。重要な ... を呼び出したときの後に my_func 関数を呼び出したときです。

実行例です。 http://ideone.com/8htWfx