doSomething("foo")
왜 그것을하려한다는 것을 스위프트 인식하지 못합니다 기본 boolToConsider
과 제공된 stringToConsider
을 사용 하시겠습니까?
doSomething("foo")
왜 그것을하려한다는 것을 스위프트 인식하지 못합니다 기본 boolToConsider
과 제공된 stringToConsider
을 사용 하시겠습니까?
스위프트의 저자가 왜 그것을 지원하지 않거나 지원을 계획하고 있는지 알 수 없습니다. 인수 목록의 어떤 부분이 전달되었는지 유형 기반 추론을하는 것은 상당히 혼란스러운 코드로 이어질 것이라고 추측 할 수 있습니다.
방금 기능을 오버로드 할 수 있습니다. 외부 매개 변수 레이블 모든 익명 (_) 때문에
func doSomething(_ stringToConsider: String) {
doSomething(false, stringToConsider)
}
이미 당신이 그렇지 않으면 당신의 방법의 모호한 사용에 대해 불평 할 것이다 기본값으로 설정된 모든 매개 변수를 가질 수 있습니다, 당신은 3 명 가지 방법 서명하고 그 중 하나를 제공 원하는 것을 달성 할 수 @Woof 언급 :
func doSomething(_ bool: Bool) {
print("bool:", bool)
}
func doSomething(_ string: String) {
print("string:", string)
}
func doSomething(_ bool: Bool = false, _ string: String = "") {
print("bool:", bool)
print("string:", string)
}
doSomething(true)
doSomething("foo")
doSomething()
doSomething(true, "foo")
이 인쇄됩니다
doSomething with bool value only
bool: true
doSomething with string value only
string: foo
doSomething with default values
bool: false
string: default
doSomething with default values
bool: true
string: foo
함수 매개 변수의 외부 이름을 사용해 보았습니까? 또한 두 개의 함수를 사용할 수 있습니다. 하나는 부울을 받고 두 번째 String은 두 번째 문자열을 입력 한 다음 세 번째 함수를 만들어 두 가지 모두에 공통적 인 작업을 수행합니다. – Woof