1. ホーム
  2. swift

[解決済み] Swift で引数の数が可変の関数に配列を渡す

2022-04-24 01:41:35

質問

プログラミング言語「Swift と書かれています。

<ブロッククオート

また、関数は可変個数の引数を受け取り、それらを配列にまとめることができます。

  func sumOf(numbers: Int...) -> Int {
      ...
  }

このような関数にカンマで区切った数値のリスト(`sumOf(1, 2, 3, 4))を指定して呼び出すと、関数内部で配列として利用できるようになるのです。

質問:この関数に渡したい数値の配列がすでにある場合はどうすればいいのでしょうか?

let numbers = [1, 2, 3, 4]
sumOf(numbers)

この場合、コンパイラーエラー「Could not find an overload for '__conversion' that accepts supplied arguments」が発生し、失敗します。既存の配列を要素のリストに変換して、可変個体関数に渡すことができる方法はありますか?

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

スプラッターはまだ言語に入っていません 開発者に確認したところ 現時点での回避策は、オーバーロードを使用するか、オーバーロードを追加できない場合は待機することです。