1. ホーム
  2. arrays

[解決済み] インデックスレンジSwiftからの新配列

2022-05-11 21:02:52

質問

どうしたらこんなことができるのでしょうか?配列から最初のn個の要素を取り出す。

newNumbers = numbers[0..n]

現在、以下のようなエラーが発生しています。

error: could not find an overload for 'subscript' that accepts the supplied arguments

EDIT

以下は、その関数です。

func aFunction(numbers: Array<Int>, position: Int) -> Array<Int> {
    var newNumbers = numbers[0...position]
    return newNumbers
}

解決方法は?

これは私のために動作します。

var test = [1, 2, 3]
var n = 2
var test2 = test[0..<n]

問題は、そもそも配列の宣言の仕方にあるのかもしれませんね。

EDITしてください。

この関数を修正するために Slice を配列に変換します。

func aFunction(numbers: Array<Int>, position: Int) -> Array<Int> {
    var newNumbers = Array(numbers[0..<position])
    return newNumbers
}

// test
aFunction([1, 2, 3], 2) // returns [1, 2]