Я выделил следующий код на детской площадке. В детской площадке, я получаю отмеченные ошибки компиляции времени:Неявно развернутое умножение и деление
class MyClass {
var weight: Double!
func toOunces() {
weight *= 0.035274 // 'Double!' is not identical to 'UInt8'
weight = weight * 0.035274 // works
}
func toGrams() {
weight /= 0.035274 // 'Double!' is not identical to 'Float'
weight = weight/0.035274 // works
}
}
Я следовал примеру в Интернете с помощью NSCoder, где decodeDoubleForKey() as Double?
, использовавшаяся, следовательно, неявно развернутого дополнительного var weight: Double!
.
Я обсуждал, как правильно это сделать, даже, и я установил его в моем коде.
Мой вопрос, почему эти ошибки компиляции времени? Почему умножение по сравнению с UInt8 и делением сравнивается с Float? Есть что-то, чего я не хватал в течение многих лет относительно * = и/=?
Я все еще учусь на это, так что я, вероятно, не хватает какой-то основное свойство.