1. ホーム
  2. swift

[解決済み] Swiftのスライスって何?

2023-05-16 18:18:01

質問

Swiftのスライスとは何ですか、また配列とどう違うのですか?

ドキュメントから、subscript(Range)の型シグネチャは。

subscript(Range<Int>) -> Slice<T>

なぜ別の Array<T> ではなく Slice<T> ?

スライスを配列に連結することができるようです。

var list = ["hello", "world"]
var slice: Array<String> = [] + list[0..list.count]

しかし、これではエラーが発生します。

を受け入れる 'subscript' のオーバーロードが見つかりませんでした。 引数

var list = ["hello", "world"]
var slice: Array<String> = list[0..list.count]

スライスとは何ですか?

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

スライスは配列の中を指しています。すでに配列が存在し、スライスはその中の必要な部分を記述するだけでよいのであれば、別の配列を作る意味はありません。

足し算は暗黙の強制を引き起こすので、うまくいきます。代入がうまくいくように あなた は強制する必要があります。

var list = ["hello", "world"]
var slice: Array<String> = Array(list[0..<list.count])