プログラムを制作する上で欠かせないといっても過言ではないメソッド。
Swiftにおけるメソッドも、他のプログラム言語と同様に「引数」も「戻り値」が存在していますが、引数の数によってメソッドを呼ぶ形式が少し変わったり、「ラベル」という見出しを付けた引数を定義したりすることもできます。
今回はそういった、Java、Cなどのよく使われる言語でのメソッドと、Swiftのメソッドの異なる箇所を解説します。
メソッド定義の基本形
まずは基本的なメソッドの定義方法から見ていきましょう。
特徴1.引数が複数ある場合のメソッドの呼び出し方
引数が複数ある場合、引数同士の間を「,(カンマ)」で区切るという部分は他の言語と変わりありません。
ただし、呼び出しの記述は引数が一つのみの場合と少し異なります。
特徴2.ラベルつき引数
メソッドに引き渡す値が何のためのものかがわかりやすいよう、引数に対して呼び出しの際に利用できる項目名を定義することができます。これを「ラベル」といいます。
特徴1の「引数名:値」の渡し方と似ていますが、ラベルの場合は引数が何個あったとしても、必ず「ラベル名:値」にしなければいけない、つまり引数が一つの場合であったとしてもラベル名が必要になるところが違います。また、ラベルをつけた場合、ラベル名の指定を省略した呼び出しはできません。
例えば四角形の面積を計算するareaというメソッドがあったとします。
高さと幅を引数で渡す場合に、widthとheightというラベルを引数に定義してみましょう。
例)areaメソッドを定義する
1 2 3 4 5 6 7 8 |
[swift] func area(width val1:Int , height val2:Int ) -> Int { var ans:Int = val1 * val2 return ans } [/swift] |
※IntはSwiftにおける整数の型です。
val1は第一引数を受け取る変数名(引数名)で、widthはそのラベルです。
val2は第二引数を受け取る変数名(引数名)で、heightはそのラベルです。
ansという変数にval1とval2の計算結果を代入し、returnで戻り値として戻します。
例)areaメソッドの呼び出し
1 |
[swift]var data = area(width:100, height:50)[/swift] |
width、heightといったラベルを指定して引数を渡しています。
このようにラベルを使うことで、第一引数が幅、第二引数が高さというのがわかりやすくなりました。
Swiftは今までiPhoneアプリの開発に使われてきたObjective-Cよりも、他のプログラム言語をベースにした理解がしやすい言語仕様となってはいますが、今回ご紹介したメソッドの特徴以外にも、Swift独自の記述方法はいくつかあります。
言語の違いを比較するのもよい学習になりますので、是非調べてみてください。