私のコードをSwift 3に変換していますが、3つのビルドタイムエラーが残っています。そのうちの2つはレンジの現在の仕組みを理解できていません。例えば、私が持っている:Swift 3のClosedRangeと配列の添え字
func shuffle(_ tenseArray: [ Tense ], ...
var indices = [ Int ]()
for tense in tenseArray {
if let aRange = tenseRange[ tense ] {
indices.append(aRange)
}
}
Tense
のようなものに見える列挙です
:
enum Tense: String {
case IndicativePresent = "Indicative Present"
case IndicativePreterite = "Indicative Preterite"
case IndicativeImperfect = "Indicative Imperfect"
...
そしてtenseRange
は次のように定義されています
var tenseRange: [ Tense : ClosedRange<Int> ] = [:] // maps Tense enums to ranges of tense indices
と、次のように読み込まれます。
をtenseRange[ Tense.IndicativePresent ] = (11 ... 16)
tenseRange[ Tense.IndicativePreterite ] = (17 ... 22)
tenseRange[ Tense.IndicativeImperfect ] = (23 ... 28)
...
indices.append(aRange)
の行のために210
は、私が「CountableRange」タイプのインデックスと「[INT]」タイプの値を添字できないエラーを取得しています。以前はSwiftでできるように、配列のインデックスに使用するために、これらの範囲をintに変換したいのですが、どのようにしてわかるかわかりません。何か案は?
ありがとうございます!