Swift,如何在不显式转换的情况下将 String 转换为 Int?
Swift, How do I convert a String to Int without explicit conversion?
那么有没有另一种不显式的转换方式呢?
比方说,这是字符串
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
那么有没有另一种不显式的转换方式呢?
比方说,这是字符串
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