У меня есть этот Swift код, который компилируется просто отлично:Почему скобки вокруг «0x1000 - 1» вызывают ошибку времени компиляции?
let someArray = Array(count: 45, repeatedValue: 0)
let a: UIntMax = 0x00010000
let b = a + someArray.count
let c = (b + 0x1000 - 1)/0x1000
println("\(someArray.count == c), \(c)")
Однако, я полагал, что переполняется будет чуть менее вероятно, если бы я убедился, что - 1
применяется к 0x1000
перед добавлением к b
(на линии 4), поэтому я хотел бы изменить его на:
let c = (b + (0x1000 - 1))/0x1000
Удивительно, но этот фрагмент кода не компилировать больше. Я получаю эту ошибку на println
линии:
Не удалось найти участника
convertFromStringInterpolationSegment
Что случилось? Почему мое выраженное в скобках выражение действует иначе, чем мой беспристрастный, и почему это влияет?
Быстрое выражение типа иногда путается, это похоже на один из них. Я бы пошел и поместил билет в Apple. –