web-dev-qa-db-ja.com

Swiftの値の範囲で満たされた配列を即座に生成する方法はありますか?

たとえば、pythonでは、

arr = range(0,30) 

上記の要素を持つ配列を取得します。 Swiftの添え字でも同様のことが可能ではないかと思いますが、ドキュメントとAppleのiBookを精査した後、上記の配列を生成するための「バッテリー付き」の解決策が見つかりません。

これは手動でコードを書かなければならないものですか、それとも事前に書かれたメソッドがありますか?

33
hansvimmer

次のような範囲の配列を作成できます。

var values = Array(0...100)

これにより、[0, ..., 100]の配列が得られます

57
Kalenda

範囲を作成して配列にマッピングできます。

var array = (0...30).map { $0 }

mapクロージャは単に範囲要素を返すため、要素はすべて範囲に含まれる整数である配列になります。もちろん、次のようなさまざまな要素とタイプを生成することは可能です。

var array = (0...30).map { "Index\($0)" }

文字列の配列を生成しますIndex0Index1など.

16
Antonio

これを使用して、同じ値を含む配列を作成できます

let array = Array(count: 5, repeatedValue: 10)

または、範囲から配列を作成する場合は、次のようにすることができます

let array = [Int](1...10)

この場合、1から10までのInt値を含む配列を取得します

7
mustafa

0からN-1までのInt配列を作成します

var arr = [Int](0..<N)

0からN-1までのFloat配列を作成する

var arr = (0..<N).map{ Float($0) }

2πステップ0.1を含む0から2πまでのフロート配列を作成します

var arr:[Float] = stride(from: 0.0, to: .pi * 2 + 0.1, by: 0.1).map{$0}
or
var arr:[Float] = Array(stride(from: 0.0, to: .pi * 2 + 0.1, by: 0.1))
2
lbsweek