Swift, как мне преобразовать строку в Int без явного преобразования? - PullRequest
0 голосов
/ 06 февраля 2020

Так есть ли другой способ преобразования без явного указания?

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Допустим, это строка

    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
0 голосов
/ 06 февраля 2020

Если вы подтвердите от String до ExpressibleByIntegerLiteral, вы можете просто написать это:

let myVar: String = 1

print(myVar)

Просто обратите внимание, что вам нужно явно указать тип для myVar, так как компилятор не знает, какой тип должен выберите из.

Как мы соответствуем String ExpressibleByIntegerLiteral? Примерно так:

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

для обратного вы можете посмотреть на ExpressibleByStringLiteral

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...