引数ラベル
CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 54/86。
Swiftは、引数ラベルを使用することで、関数呼び出しがどのように読めるかを制御できるようにします。引数ラベルは関数を呼び出す際に使用するもので、パラメータ名は関数内部で使用する名前です。
引数名の前に引数ラベルを記述することで、両方を指定できます:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // 出力: Hello, Alice!ここでは、to が引数ラベル(呼び出し時に使用)で、name がパラメータ名(関数内部で使用)です。これにより、呼び出しが「greet to Alice」のように、より自然に読めるようになります。
時には、よりクリーンな呼び出しのためにラベルを完全に省略したい場合があります。引数ラベルとしてアンダースコア (_) を使用します:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // 出力: 25アンダースコアがない場合、square(number: 5) と書く必要があります。アンダースコアによってその必要がなくなり、関数名ですでに目的が明確な場合に関数の呼び出しをよりシンプルにすることができます。
チャレンジ
簡単引数ラベルの異なるテクニックを実演する2つの関数を作成してください:
関数 1: send
- 引数ラベル
messageを使用し、パラメータ名をtext(型String)にします - 引数ラベル
toを使用し、パラメータ名をrecipient(型String)にします - 次の形式の文字列を返します:
"Sending '[text]' to [recipient]"
関数 2: double
- アンダースコア
_を使用して引数ラベルを省略します - パラメータ名は
number(型Int)にします - 数値を2倍にした値を返します
両方の関数を定義した後、入力から2つの文字列と1つの整数を読み取り、両方の関数を呼び出して結果を別々の行に出力してください。
以下の入力を受け取ります:
- 1行目:メッセージテキスト(例:
"Hello") - 2行目:受信者の名前(例:
"Alice") - 3行目:2倍にする数値(例:
"7")
例えば、入力が "Hello"、"Alice"、"7" の場合、出力は以下のようになります:
Sending 'Hello' to Alice
14チートシート
Swiftでは、引数ラベル(argument labels)を使用することで、関数呼び出しの読みやすさを制御できます。引数ラベルは関数の呼び出し時に使用され、パラメータ名は関数本体の内部で使用されます。
パラメータ名の前に引数ラベルを記述することで、両方を指定します:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Output: Hello, Alice!ここでは、toが引数ラベルで、nameがパラメータ名です。
呼び出しをより簡潔にするために引数ラベルを省略するには、アンダースコア(_)を使用します:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Output: 25アンダースコアがない場合は、square(number: 5)と記述する必要があります。
自分で試してみよう
// 入力を読み込む
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: 以下にコードを記述してください
// 引数ラベル 'message' と 'to' を持つ 'send' 関数を定義します
// '_' を使用して引数ラベルを省略した 'double' 関数を定義します
// 両方の関数を呼び出し、結果を出力しますこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。