Поддерживает ли Swift неявное преобразование?
Например, у меня есть следующий код:
let numberOfBlocks = 3
let blockWidth = SKSpriteNode(imageNamed: "image.png").size.width
let padding = 20.0
let offsetX : Float = (self.frame.size.width - (blockWidth * numberOfBlocks + padding * (numberOfBlocks-1))) / 2
Я получил ошибку:
Double не конвертируется в UInt8
Есть ли способ неявного преобразования типа данных (возможно, только для примитивного типа данных)?
Редактировать:
Я знаю, как сделать явное преобразование с помощью конструктора определенного типа, какIducool предложил. Но это не сильно помогает моему вопросу, потому что мы даже не знаем, куда добавить конверсии. Я упростила свое выражение на детской площадке:
Проблема в переменной "padding", сообщение об ошибке
Double не конвертируется в UInt8.
Итак, я сделал преобразование:
Тогда проблема в переменной "blockWidth" сейчас.
Я добавил преобразование снова:
И сообщение об ошибке:
Тип 'UInt8' не соответствует протоколу 'FloatLiteralCovertible'
Последнее рабочее выражение:
Это просто и быстро? Я так не думаю.