2016-03-28 7 views
1

Я пытаюсь использовать функцию шага() на UINT переменных, но код не будет компилироваться:Использование походку() на UInt в Swift 2.2 не будет компилировать

let s = UInt(1) 
let by = UInt(2) 
let to = UInt(10) 

for i: UInt in s.stride(to: to, by: by) { 

} 

Ошибка компиляции является:

не может ссылаться на 'шаг' со списком аргументов типа '(к: UInt посредством: UInt)'

Свифта 2.2 документ, утверждает, что это должно быть возможно: http://swiftdoc.org/v2.2/type/UInt/#func-stride-to_by_

Является ли это быстрой ошибкой или я что-то не так?

ответ

3

В https://github.com/apple/swift/blob/master/stdlib/public/core/Stride.swift говорится, что

В UnsignedIntegerTypes все есть подписанный Stride типа.

Это имеет смысл, поскольку в противном случае было бы невозможно выполнить итерацию от большего до меньшего числа.

Поэтому в вашем случае это должно быть

let by = Int(2) 

или просто

let by = 2