Есть ли простой способ объединить значения и параметры параметров функции по умолчанию, поэтому параметр принимает значение по умолчанию, когда параметр указан в вызове функции, но это значение ноль?Значения по умолчанию для параметров функции, в которых значение передано in, равно nil
Например:
class MyObj {
var foobar:String
init(foo: String?="hello") {
self.foobar = foo!
}
}
let myObj = MyObj() // standard use of default values - don't supply a value at all
println(myObj.foobar) // prints "hello" as expected when parameter value is not supplied
var jimbob: String? // defaults to nil
...
// supply a value, but it is nil
let myObj2 = MyObj(foo: jimbob) // <<< this crashes with EXC_BAD_INSTRUCTION due to forced unwrap of nil value
println(myObj2.foobar)
... или это лучше всего, чтобы дать значение константы членов/переменное по умолчанию, а затем только изменить их, если есть значение при условии, конструктору, например:
let foobar:String = "hello"
init(foo: String?) {
if foo != nil {
self.foobar = foo!
}
}
Ощущается, что должно быть более аккуратное решение, учитывая другие особенности языка в этой области.
отличное решение - спасибо! –
Раздел в Apple Swift iBook под названием «Nil Coalescing Operator» обеспечивает отличное объяснение того, что такое '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' –