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

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

let myVar: String = 1

print(myVar)

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

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

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

反过来你可以看看ExpressibleByStringLiteral