Привет после перехода на swift3. У меня такая проблема? Ребята знают, что случилось?Неоднозначная ссылка в swift3
неоднозначной ссылки на член "/"
let rateForPeriod = interestRate!/Double(100)/Double(K.monthsEachYear)
Привет после перехода на swift3. У меня такая проблема? Ребята знают, что случилось?Неоднозначная ссылка в swift3
неоднозначной ссылки на член "/"
let rateForPeriod = interestRate!/Double(100)/Double(K.monthsEachYear)
Если бы я тебя, я хотел бы использовать опциональное связывание проверить, является ли InterestRate является ноль или нет.
let interestRate: Double? = 0.4
if let interestRate = interestRate {
let rateForPeriod = interestRate/Double(100)/Double(1)
}
Поздравляем! Возможно, вы только что нашли ошибку в компиляторе!
Давайте попробуем несколько вариантов кода:
Это терпит неудачу:
let optional: Double? = 1
let result = optional!/Double(1)/Double(1)
Это работает:
let optional: Double? = 1
let unwrapped = optional!
let result = unwrapped/Double(1)/Double(1)
Это не удается:
let rateForPeriod = (Double(1) as Double?)!/Double(1)/Double(1)
но это работает :
let rateForPeriod = ((Double(1) as Double?)! as Double)/Double(1)/Double(1)
Так что это тоже работает:
let optional: Double? = 1
let rateForPeriod = optional! as Double/Double(1)/Double(1)
Это, кажется, побочный эффект (вероятно, ошибка) новых факультативных правил разворачивания.
Обратите внимание, что делает только один отдел, в то время работает, как ожидалось:
let optional: Double? = 1
let rateForYear = optional!/Double(1)
let rateForPeriod = rateForYear/Double(1)
Что мы должны делать?
Try, чтобы увидеть, если вы можете сделать InterestRate не быть необязательным, используйте пункт охраны или дать ему значение по умолчанию, как это: let rate = interestRate ?? 0
.
Тип 'interestRate'? –
двойной тип брок –
похоже ошибка нет если я напишу вот так var rateForPeriod = interestRate!/Double (100) rateForPeriod = rateForPeriod/Double (K.monthsEachYear) Правильно ли это исправить? –