斯威夫特,如何在没有显式转换的情况下将字符串转换为 Int?



那么有没有另一种不明确的转换方式呢?

假设,这是字符串

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

如果你确认StringExpressibleByIntegerLiteral你可以写这个:

let myVar: String = 1
print(myVar)

请注意,您需要显式提供myVar类型,因为编译器不知道应该选择哪种类型。

我们如何使String符合ExpressibleByIntegerLiteral?像这样:

extension String : ExpressibleByIntegerLiteral {
public init(integerLiteral value: Int) {
self = String(value)
}
}

反过来,你可以看看ExpressibleByStringLiteral

相关内容

  • 没有找到相关文章

最新更新