В Swift, Array [String] slicing возвращаемый тип не кажется [String]
Я нарезаю массив строк и устанавливаю это в [String]
переменная, но тип проверки жалуется. Это возможная ошибка компилятора?
var tags = ["this", "is", "cool"]
tags[1..<3]
var someTags: [String] = tags[1..<3]
4 ответа:
подписка на массив с диапазоном возвращает не массив, а срез. Однако вы можете создать массив из этого среза.
var tags = ["this", "is", "cool"] tags[1..<3] var someTags: Slice<String> = tags[1..<3] var someTagsArray: [String] = Array(someTags)
var tags = ["this", "is", "cool"] var someTags: [String] = Array(tags[1..<3]) println("someTags: \(someTags)") // "someTags: [is, cool]"
другой способ сделать это в одном месте совместить объявление переменной
let someTags: [String]
иmap(_:)
, которые превратятArraySlice<String>
до[String]
:let tags = ["this", "is", "cool"] let someTags: [String] = tags[1..<3].map { } // ["is", "cool"]