例如,我有以下代码:
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
Run Code Online (Sandbox Code Playgroud)
我收到了错误:
'Double'不能转换为'UInt8'
有没有办法隐式转换数据类型(可能只对原始数据类型)?
编辑:
我知道如何通过使用Iducool建议的特定类型的构造函数来进行显式转换.但这对我的问题没什么大帮助,因为我们甚至不知道在哪里添加转换.我简化了我在游乐场的表达:

问题出在"填充"变量,错误信息是
'Double'不能转换为'UInt8'.
所以我做了转换:

那么现在的问题是"blockWidth"变量.
我再次添加了转换:

错误信息是:
类型'UInt8'不符合协议'FloatLiteralCovertible'
最终的工作表达式是:

它简单快捷吗?我不这么认为.