#9 Swiftで学ぶ関数の基本

Swiftの関数は、引数に「外部名」という独自のラベルを付けられるのが特徴です。この記事では、Swiftにおける関数の基本と、ラベルの使い分けを解説します。

関数を作ってみる

Swiftではfuncというキーワードを使います。

func greet(name: String) {
    print("こんにちは、\(name)さん")
}

greet(name: "太郎")

呼び出す際にname:というラベルを付けるのがSwiftの特徴です。

値を返す関数

func add(a: Int, b: Int) -> Int {
    return a + b
}

let result = add(a: 3, b: 5)
print(result) // 8

外部名という独自の仕組み

Swiftでは、関数定義の際に呼び出し時のラベルを変えることもできます。

func greet(to name: String) {
    print("こんにちは、\(name)さん")
}

greet(to: "太郎")

toが呼び出し時のラベル、nameが関数内部で使う名前です。文章のように読める呼び出しができるのが、Swiftらしい特徴です。

デフォルト値を持つ引数

func greet(name: String, honorific: String = "さん") {
    print("こんにちは、\(name)\(honorific)")
}

greet(name: "太郎")             // こんにちは、太郎さん
greet(name: "太郎", honorific: "様") // こんにちは、太郎様

デフォルト値を持つ引数は、呼び出し時に省略できます。

Swiftならではの注意点

他の言語の感覚でgreet("太郎")のように、ラベルなしで呼び出そうとするとエラーになることがあります。ラベルを省略したい場合は、関数定義の際にラベルの代わりに_(アンダースコア)を書く必要があります。

func greet(_ name: String) {
    print("こんにちは、\(name)さん")
}

greet("太郎") // ラベル無しで呼び出せる

可変長引数

いくつ引数が渡されるか決まっていない場合は、型の後ろに...を付けます。

func sum(_ numbers: Int...) -> Int {
    numbers.reduce(0, +)
}

print(sum(1, 2, 3, 4)) // 10

まとめ

Swiftの関数はfuncで定義し、呼び出し時にラベルを付けるのが基本です。_によるラベル省略やデフォルト値、可変長引数も含め、この独自の仕組みに慣れると、読みやすいコードが書けるようになります。


本ページはプロモーションを含みます。

参考書籍(PR)

Swiftをもっと学びたい方には「これからつくる iPhoneアプリ開発入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本