5

スイフト2

let gap = CGFloat(randomInRange(StackGapMinWidth...maxGap))

呼び出しに引数ラベル 'range:' がありません

Swift 3 - 新しいエラー

let gap = CGFloat(randomInRange(range: StackGapMinWidth...maxGap))

'...' 候補は期待されるコンテキスト結果タイプ 'Range' を生成しません

'...' のオーバーロードは、次の結果の型で存在します: ClosedRange、CountableClosedRange

4

1 に答える 1

7

Swift 3 以降、さまざまな種類の範囲..<を生成します。...

  • ..<上限を含まない半分開いた範囲を記述するRange(または、基になる型によっては ) を生成します。CountableRange
  • ...上限を含む閉範囲を表すClosedRange(または) を生成します。CountableClosedRange

が上限を含むrandomInRange()指定された範囲内の乱数を計算する 場合、次のように定義する必要があります。

func randomInRange(range: ClosedRange<Int>) -> Int {
    // ...
}

そして、あなたはそれを次のように呼び出すことができます

let lo = 1
let hi = 10
let r = randomInRange(range: lo ... hi)
于 2016-06-20T07:24:38.117 に答える