スウィフト3.0「は 『文字列』タイプのインデックスを持つ 『[文字列]』型の値を添字できない」
はこのエラーを得ました型 '文字列' 文字列のポケモン ""私は配列をループしてみました
":しかし
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 .. "for x in pokemon"? (はい、それは最初の要素を残して間違っていた) –
はい、それを持っています。ループの最初のスタイルは要素自体を返し、ループの範囲スタイルはインデックスを返します。 – perhapsmaybeharry