Swift 3で関数のクロージャパラメータを文書化する方法とは?
2023-08-04 07:31:28
質問
Xcode 8 betaと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")
}
すると、クイックヘルプはこのようになります。
私は、"No description."を置き換えるためにいくつかのテキストを書くことができる構文が何であるかを知りたいのです。
どのように解決するのですか?
私の知る限り、クロージャパラメータにラベルを付ける場合のみ、ドキュメント化することができます。
/// 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つを区別する方法がないように思われます。
編集
: 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 ).
関連
-
[解決済み] 使用しているSwiftのバージョンを確認するにはどうすればよいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] Swiftではクロージャの内部では常に[unowned self]を使うべきか?
-
[解決済み】iOSアプリの名前を変更する方法は?
-
[解決済み] UIViewの定高制約をプログラムで更新するには?
-
[解決済み] swiftにおける "precondition "と "assert "の違いとは?
-
[解決済み] Swift の @escaping と Completion ハンドラ
-
[解決済み] Objective-CフレームワークをSwiftプロジェクトにインポートする際、Bridging Headerで「ファイルが見つかりません」と表示される。
-
[解決済み] NSDateを使用して曜日を取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] UIViewの定高制約をプログラムで更新するには?
-
[解決済み] Swiftスクリプトでターミナルコマンドを実行するには?(例:xcodebuild)
-
[解決済み] 小数点以下2桁に切り上げ
-
[解決済み] Swift - サブクラスでオーバーライドする必要があるクラスメソッド
-
[解決済み] Swiftのif letと論理AND演算子&&の使い分け
-
[解決済み] Swiftでenumをプロトコルに準拠させるには?
-
[解決済み] SwiftUIでリストの背景色を変更するには?
-
[解決済み] SwiftUIでリストの左右のパディングを削除する方法は?
-
[解決済み] iOS 9のスワイプ可能なテーブルビューセル
-
[解決済み] Swift 3 GCD API変更後のdispatch_once