在Swift中,类型注释用于使整数为double
let num: Double = 100
print(num)
Run Code Online (Sandbox Code Playgroud)
为什么类型注释不能对double到整数执行相同的操作(错误不能将'Double'类型的值转换为指定类型'Int')?
let num: Int = 100.0
print(num)
Run Code Online (Sandbox Code Playgroud)
将Int文字转换为Double作品仅仅因为Double符合ExpressibleByIntegerLiteral:
标准库整数和浮点类型(如Int和Double)符合ExpressibleByIntegerLiteral协议.您可以通过指定整数文字来初始化任何这些类型的变量或常量.
要使第二个代码起作用,Int必须遵守ExpressibleByFloatLiteral.
extension Int : ExpressibleByFloatLiteral {
public typealias FloatLiteralType = Double
public init(floatLiteral value: Int.FloatLiteralType) {
self.init(value)
}
}
let a: Int = 100.0 // works
Run Code Online (Sandbox Code Playgroud)
我不特别推荐这样做.这可能会导致您在Int没有编译器抱怨的情况下意外地将double值传递给期望的函数.
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |