반응형
Swift 3에서 함수의 클로저 매개 변수를 어떻게 문서화합니까?
Xcode 8 베타 및 Swift 3에서 클로저를 매개 변수로 사용하는 메소드가있는 경우, 예를 들면 다음과 같습니다.
func foo(bar: (String) -> Void) {
bar("Hello, world")
}
클로저가 취하는 매개 변수를 어떻게 문서화합니까? 예를 들어, 내가 이것을 썼다면 :
/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
func foo(bar: (String) -> Void) {
bar("Hello, world")
}
그런 다음 빠른 도움말은 다음과 같습니다.
"설명 없음"을 대체 할 텍스트를 작성할 수있는 구문이 무엇인지 알고 싶습니다. 감사합니다!
내가 아는 한, 클로저 매개 변수에 레이블을 지정하는 경우에만 문서화 할 수 있습니다.
/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
/// - parameter theString: A string to use
func foo(bar: (theString: String) -> Void) {
bar(theString: "Hello, world")
}
이것은 이상적이지 않습니다. 클로저를 호출 할 때 인수 레이블을 사용하도록 강요하고 명명 충돌이있는 경우 둘을 구분할 방법이없는 것 같습니다.
편집 : @Arnaud가 지적했듯이 _
클로저를 호출 할 때 매개 변수 레이블을 사용할 필요가 없도록를 사용할 수 있습니다 .
/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
/// - parameter theString: A string to use
func foo(bar: (_ theString: String) -> Void) {
bar("Hello, world")
}
사실 이것은 매개 변수 레이블이 더 이상 유형 시스템의 일부가 아니기 때문에 Swift 3에서 유일한 유효한 접근 방식입니다 ( SE-0111 참조 ).
반응형
'Nice programing' 카테고리의 다른 글
"오류 : MyClass 클래스에서 Main 메서드를 찾을 수 없습니다. main 메서드를 다음과 같이 정의하십시오…" (0) | 2020.12.25 |
---|---|
분기 이름에 '공백'문자가 포함될 수없는 이유는 무엇입니까? (0) | 2020.12.25 |
Java가 배열에서 복사 된 경우 최종 변수에 대한 명시 적 캐스트가 필요한 이유는 무엇입니까? (0) | 2020.12.25 |
디버그 모드가 아닐 때 Visual Studio의 출력 창에 메시지를 표시합니까? (0) | 2020.12.25 |
동일한 R 패키지의 여러 버전을 어떻게 사용합니까? (0) | 2020.12.25 |