以下のコードをPlayGroundで実行すると
let rankList = ["D201","F221","D205","D149","E442"]
var startList = rankList.reverse()
print("rankList\(rankList)")
print("startList\(startList)")
以下のような実行結果になる
["D201", "F221", "D205", "D149", "E442"]
ReverseRandomAccessCollection<Array<String>>
"rankList["D201", "F221", "D205", "D149", "E442"]\n"
"startListReverseRandomAccessCollection<Array<String>>(_base: ["D201", "F221", "D205", "D149", "E442"])\n"
リバースコレクションがインデックスされないので、表示できないようなのである。詳しくは以下のサイトを見て欲しい
なので、以下のようにするのが正しいやり方である。
let rankList = ["D201","F221","D205","D149","E442"]
var startList = rankList.reverse()
print("rankList\(rankList)")
print("startList\(Array(startList))")
なんか遅延評価が関係するらしいのだが、遅延評価自体どういうものかよく理解していないので、ちゃんとした説明ができない。
僕自身もうちょっと勉強する必要があるかもしれない