Skip to content

Instantly share code, notes, and snippets.

@gfx
Last active July 17, 2017 03:04
Show Gist options
  • Save gfx/52668faf66501aac3f5e to your computer and use it in GitHub Desktop.
Save gfx/52668faf66501aac3f5e to your computer and use it in GitHub Desktop.
swiftでメソッドシグネチャどう書く問題

ドキュメントを書くとき、ObjCの setTile:forState: を Swfitでどう書くか。

setTitle(_: String!, forState: UIControlState)

フルパターン。

メリット:

  • 情報量が多くてわかりやすい
  • オーバーロードしていても曖昧でない
  • ほぼコード通りなので読むコストは非常に低い

デメリット:

  • 正確に書かなければならないので書くコストが非常に高い
    • 結果、記述ミスが増えそう

setTitle:forState:

ObjCのまま。ObjCの習熟に依存する度合いが高く、Swiftと離れているのが特徴的。

メリット:

  • ObjCに習熟していると読むコスト・書くコストともに低い

デメリット

  • ObjCに習熟していないと読むコスト・書くコストともに高い

setTitle(_, forState:)

フルパターンから型を取り除いたもの。

※ コロンなしの引数はラベルをつけず、コロンありの引数はラベルを付けるものとする。

メリット:

  • 読むコストが低い

デメリット:

  • コロンを付けるかどうかや _ の意味など細かい点でブレやすそうで書くコストは高いかも

setTitle(title, state)

C, Java, Rubyなどで一般的な形式。

メリット:

  • 読むコスト・書くコストともに低い
    • 情報量を犠牲にして読むコスト・書くコストを下げているといえる

デメリット:

  • 型やラベルの情報がないので情報量が少ない
    • IDEのサポートがあれば関係ないかも
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment