2
기본 함수 매개 변수 값과 옵션을 결합하는 깔끔한 방법이 있으므로 함수 호출에 매개 변수가 지정된 경우 매개 변수는 제공된 기본값의 값을 사용하지만 그게 가치가 없다는거야?값이 전달되는 함수 매개 변수의 기본값은 028입니다.
예를 들어:
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!
}
}
이 영역에 다른 언어 기능이있는 경우 깔끔한 솔루션이 있어야합니다.
훌륭한 솔루션 - 감사합니다! –
"Nil Coalescing Operator"라는 제목의 Apple Swift iBook 섹션에서는'무엇이''무엇이며 내부적으로 어떻게 작동하는지에 대한 훌륭한 설명을 제공합니다. –