LoginSignup
19
18

More than 5 years have passed since last update.

Swiftの関数名と外部引数名の付け方メモ

Last updated at Posted at 2015-09-09

Swiftの関数名(メソッド名)ってどうやってつけてますか? と聞かれた時に話したメモ。ふたりとも同じようにつけていたので、おそらく無難な付け方。

以下はSwift 1.2を対象として 関数 で説明しています。

メソッド(クラス内の関数)とinit(イニシャライザ)では # の使い方が異なりますのでご注意ください。

内部引数名を外部引数名にも使う場合、メソッドなら第一引数に#を付けます(第二引数以降は自動で使われる)。
initなら#は全て不要となります(全て自動で使われる)。

関数名だけで機能を説明する

OK

func setSize(size: CGSize) {
}
setSize(size)

NG

// 関数名 + 外部引数名で機能がわかるような付け方はしない
func set(#size: CGSize) {
}
set(size: size)

追加要素には外部引数名をつける

OK

func setSize(size: CGSize, #animated: Bool) {
}
setSize(size, animated: true)

関数名と引数が1対1で対応しない場合、外部引数名を使用する

OK

func setSize(#width: CGFloat, #height: CGFloat) {
}
setSize(width: 640, height: 480)

NG

// 内部引数名で意図がわかるとしても、内部引数名だけにはしない
func setSize(width: CGFloat, height: CGFloat) {
}
setSize(800, 600)

NG

// Objective-Cっぽくしない
func setSizeWithWidth(width: CGFloat, #height: CGFloat) {
}
setSizeWithWidth(320, height: 240)

Swift 2では第一引数に # が使えないらしいとか、Objective-Cっぽい名前を目指している? といった情報がありました。
第2回目の Swift 2 シンポジウムも沢山の学びが得られる良い会でした。

こちらを読ませていただくと、上記の名前の付け方でいいか考えちゃいますね。とても参考になりました。

19
18
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
18