ios In Swift, il tipo di ritorno di slicing[String] Array non sembra essere



sub-array (3)

Sto tagliando una serie di stringhe e impostandola su una variabile [String] , ma il correttore di tipi si lamenta. È un possibile bug del compilatore?

var tags = ["this", "is", "cool"]
tags[1..<3]
var someTags: [String] = tags[1..<3]

https://src-bin.com


Answer #1

La sottoscrizione di un array con un intervallo non restituisce un array, ma una sezione. Tuttavia, puoi creare una matrice da quella sezione.

var tags = ["this", "is", "cool"]
tags[1..<3]
var someTags: Slice<String> = tags[1..<3]
var someTagsArray: [String] = Array(someTags)

Answer #2

Puoi anche farlo per ottenere una nuova matrice della fetta:

var tags = ["this", "is", "cool"]
var someTags = [String]()
someTags += tags[1..<3]
println(someTags[0])  //prints ["is", "cool"]

Answer #3
var tags = ["this", "is", "cool"]
var someTags: [String] = Array(tags[1..<3])
println("someTags: \(someTags)") // "someTags: [is, cool]"




sub-array