Swift 引数の渡し方とラベル指定のルール|初心者向けにやさしく解説
生徒
「Swiftで関数にデータを渡したいんですが、呼び出すときに名前を付けたりするのが難しいです…」
先生
「Swiftでは、関数の引数に『ラベル』を付けて、どの値が何を意味しているのか分かりやすくすることができます。これはSwiftの特徴のひとつです。」
生徒
「ラベルって何のためにあるんですか? 書き方にルールがあるのも気になります…」
先生
「それじゃあ、Swiftの引数の渡し方とラベル指定について、基本からやさしく説明していきましょう!」
1. Swiftの引数とは?
関数にデータを渡すときの値を引数(ひきすう)と呼びます。たとえば、名前を使ってあいさつする場合、その「名前」が引数です。
引数を使えば、関数をもっと自由に、いろいろな場面で使えるようになります。
2. 基本的な引数の渡し方
Swiftでは、関数に引数を渡すときに、ラベルを使うのが一般的です。以下は基本的な書き方です。
func greet(name: String) {
print("こんにちは、\(name)さん!")
}
greet(name: "太郎")
この例では、nameが引数名で、呼び出すときにもname:というラベルを付けています。
3. 引数ラベルとは?
Swiftの関数では、引数にラベルと引数名の2つを設定できます。
func greet(名前 name: String) {
print("こんにちは、\(name)さん!")
}
greet(名前: "花子")
このように、ラベル(外部名)と変数名(内部名)を分けて定義することで、呼び出す側からは意味がより明確になります。
ラベル:関数を使う人向けの名前
引数名:関数の中で使う名前
4. ラベルを省略したいときは?
ラベルを使いたくないときは、アンダースコア(_)を使います。
func greet(_ name: String) {
print("こんにちは、\(name)さん!")
}
greet("太郎")
この書き方にすると、呼び出すときにname:のようなラベルを省略できます。
5. 複数の引数を使う場合
引数が複数ある関数でも、ラベルは柔軟に使えます。
func introduce(名前 name: String, 年齢 age: Int) {
print("私は\(name)です。年齢は\(age)歳です。")
}
introduce(名前: "太郎", 年齢: 18)
それぞれの引数にわかりやすいラベルをつけることで、どんな値を渡しているかが一目で分かります。
6. ラベルと引数名が同じ場合
ラベルと引数名が同じ場合は、以下のように省略して書くこともできます。
func greet(name: String) {
print("こんにちは、\(name)さん!")
}
このとき、呼び出し側ではname:を指定する必要があります。
greet(name: "花子")
7. ラベルの使い分けのポイント
Swiftでは、以下のように使い分けをすると分かりやすくなります。
- 外部ラベル:関数の使い方を説明する役割
- 内部引数名:関数内の処理で使う変数名
たとえば、from:to:のように意味をはっきり伝えるラベルは、読みやすさにとても効果的です。
func move(from start: String, to end: String) {
print("\(start)から\(end)へ移動します")
}
move(from: "東京", to: "大阪")
東京から大阪へ移動します
8. ラベルのない関数が向いているケース
関数の意味が直感的で、引数が1〜2個だけのときは、ラベルを省略しても読みやすくなる場合があります。
func printMessage(_ message: String) {
print("メッセージ:\(message)")
}
printMessage("こんにちは")
メッセージ:こんにちは
このように、文のように自然に読める関数にしたい場合は、ラベルを省略するのもひとつのテクニックです。
9. Swiftの引数とラベルに関する注意点
Swiftでは、関数を定義するときに、ラベルがあるかないかによってまったく別の関数として扱われます。
func greet(name: String) {
print("こんにちは、\(name)さん!")
}
func greet(_ name: String) {
print("やあ、\(name)!")
}
このように、同じ引数でもラベルの有無が違えば、別の関数としてSwiftは認識します。