var myBool = true
var boolAsString = String(myBool)
Ответ 3
Вы можете использовать тернарный оператор ?::
let a = optBool == nil ? "<None>" : "\(optBool!)"
Или вы можете использовать map:
let a = optBool.map { "\($0)" } ?? "<None>"
Из двух, optBool.map { "\($0)" } делает именно то, что вам нужно BoolToString; он возвращает String?, который равен Optional(true), Optional(false) или nil. Тогда оператор nil-coalescing ?? разворачивает или заменяет nil на "<None>".
Update:
Это также можно записать как:
let a = optBool.map(String.init) ?? "<None>"
или
let a = optBool.map { String($0) } ?? "<None>"
Ответ 4
var boolValue: Bool? = nil
var stringValue = "\(boolValue)" // can be either "true", "false", or "nil"
Или более подробная пользовательская функция:
func boolToString(value: Bool?) -> String {
if let value = value {
return "\(value)"
}
else {
return "<None>"
// or you may return nil here. The return type would have to be String? in that case.
}
}
Ответ 5
let someString = String(true) //"true"
let trueBool = Bool("true") //true
let falseBool = Bool("false") //false
let nilBool = Bool("foo") //nil