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")
}
これは理想的とは言えません。クロージャを呼び出すときに引数ラベルを使用する必要があり、名前の競合がある場合は、2つを区別する方法がないようです。
Edit:@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 を参照)。