Ответ 1
С Swift 4.2 и Swift 5 вы можете выбрать одно из 5 следующих решений для решения вашей проблемы.
# 1. Использование NSNumber
intValue
import Foundation
let integer = NSNumber(value: false).intValue
print(integer) // prints 0
# 2. Использование литья типов
import Foundation
let integer = NSNumber(value: false) as? Int
print(String(describing: integer)) // prints Optional(0)
# 3. Использование Int
init(exactly:)
инициализатора
import Foundation
let integer = Int(exactly: NSNumber(value: false))
print(String(describing: integer)) // prints Optional(0)
В качестве альтернативы предыдущему коду, вы можете использовать более краткий код ниже.
import Foundation
let integer = Int(exactly: false)
print(String(describing: integer)) // prints Optional(0)
# 4. Использование init(truncating:)
Int
init(truncating:)
import Foundation
let integer = Int(truncating: false)
print(integer) // prints 0
# 5. Использование потока управления
Обратите внимание, что следующие примеры кодов не требуют импорта Foundation.
Использование № 1 (если выражение):
let integer: Int
let bool = false
if bool {
integer = 1
} else {
integer = 0
}
print(integer) // prints 0
Использование № 2 (троичный оператор):
let integer = false ? 1 : 0
print(integer) // prints 0