那么有没有另一种不明确的转换方式呢?
假设,这是字符串
var stringValue = "123"
您可以通过两种方式将其转换为"INT"
首先是
let intNumber : Int = Int(stringValue)!
二是
let anotherIntNumber : Int = (stringValue as NSString).integerValue // go with first 1 as this is more of objective-c
如果你确认String
ExpressibleByIntegerLiteral
你可以写这个:
let myVar: String = 1
print(myVar)
请注意,您需要显式提供myVar
类型,因为编译器不知道应该选择哪种类型。
我们如何使String
符合ExpressibleByIntegerLiteral
?像这样:
extension String : ExpressibleByIntegerLiteral {
public init(integerLiteral value: Int) {
self = String(value)
}
}
反过来,你可以看看ExpressibleByStringLiteral