Swift 3,0«Невозможно Нижний индекс значение типа„[Строка]“с индексом типа" Строка»
получил эту ошибку:«Невозможно Subscript значение типа „[String]“ с индексом Тип "Строка"
, когда я попытался перебрать массив "покемон" строки:
for x in pokemon {
var name: String!
name = pokemon[x]
poke = Pokemon(name: name, pokemonId: x)
pokemons.append(poke)
}
Однако он работал, когда я писал:
for x in 1..<pokemon.count {
var name: String!
name = pokemon[x]
poke = Pokemon(name: name, pokemonId: x)
pokemons.append(poke)
}
После исследования кажется, что «for x in pokemon» делает «x» не Int, а String (фактические элементы массива). Почему это происходит?
Так это просто правило цикла «for in», что если мы хотим получить индекс элементов, мы должны использовать «0 .. «для x в покемоне»? (Да, это была ошибка, оставив первый элемент) –
Да, вы поняли. Первый стиль цикла возвращает сами элементы, а стиль диапазона цикла возвращает индексы. – perhapsmaybeharry