我在声明和使用常量的变量类型方面遇到麻烦。
let MAX_RADIUS_IN_MILE = 100.0
radiusSlider.maximumValue = MAX_RADIUS_IN_MILE
在这种情况下,我得到一个错误-Cannot assign value of type 'Double' to type 'Float'
我不想用这样的类型定义let MAX_RADIUS_IN_MILE: Float = 100.0
声明一个常量,但只想知道另一种使该常量成为Float的聪明方法。
有什么主意吗?
例如,C#为此提供了解决方案。
答案 0 :(得分:2)
首先,使用camelCase在Swift中进行命名。 lowerCamelCase用于常量/变量/函数,而UpperCamelCase用于类型(类,...)
MAX_RADIUS_IN_MILE -> maxRadiusInMile
现在解决您的问题。错误很明显,您具有类型为Double
的常量(如果您未指定十进制数字的类型,则编译器将其指定为类型Double
),但是分配maximumValue
则需要类型{{1} }。现在怎么办?
如果您需要常量类型为Float
的一种解决方案是:将常量类型指定为Float
Float
无论如何,如果您只需要此常数来分配一个值,则可以直接分配它
let maxRadiusInMile: Float = 100
let maxRadiusInMile = Float(100)
如果出于某种原因需要常量类型为radiusSlider.maximumValue = 100
,则可以使用设计的初始值设定项将类型Double
的常量转换为Double
Float