【Swift】関数

関数とは処理をまとめて名前をつけたもので、入力を取って処理(演算)したり、任意のタイミングで同じ処理を再利用したりする事ができるものです。また、処理した値を出力することもできます。
引数と戻り値、返り値について
入力の事を引数、出力の事を戻り値、または返り値と言います。

functionアイキャッチimg

前回は 配列型 について書きました。

今回は 関数 について書いていこうと思います。

関数とは

関数とは処理をまとめて名前をつけたもので、入力を取って処理(演算など)したり、任意のタイミングで呼び出して同じ処理を再利用する事ができるものです。また、処理した値を出力することもできます。

引数と戻り値(返り値)について

入力の事を引数、出力の事を戻り値、または返り値と言います。
関数に引数が必要ない場合、戻り値が必要ない場合は省略する事ができます。

関数の書式

引数が必要ない場合、戻り値が必要ない場合の書式

funk 関数名() {
     処理(ローカルスコープ)
 }

関数は頭に func キーワードを付けます。
関数名の後に ( ) だけ書いて、中括弧 { } の中に処理を書きます。

引数を取って戻り値を返したい場合の書式

funk 関数名(引数名:型名(入力の型),...) -> 戻り値(出力)の型名 {
     処理(ローカルスコープ)
     return 戻り値(出力)
 }

関数名を書いた後 ( ) を書いて、中に 引数名入力の型名 を書きます。
引数名型名 はコロン : で区切ります。
引数を複数書く場合は、カンマ , で区切ります。
矢印のような記号は、ハイフン と大なり > 記号になっていて、アロー演算子と言います。
アロー演算子 -> の後に 出力(戻り値)の型名 を書いて、 { } の中に処理を書きます。
処理の最後に return キーワードを書いて、出力(戻り値)の型 と同じ型の値を返します。

関数の書き方

引数が必要ない場合、戻り値が必要ない場合の例

//引数が必要ない場合、戻り値が必要ない場合の例
func greeting() {
    var a = "Hello.Swift!"
    print(a)
}

ただ文字列を出力するだけの関数で引数も戻り値も必要無いので、こういった場合は省略できます。

この関数を実行するときの例

//引数が必要ない場合、戻り値が必要ない場合の例
func greeting() {
    var a = "Hello.Swift!"
    print(a)
}
//実行例
greeting() //Hello.Swift!
functionコードimg2

引数を取って戻り値を返したい場合の例と実行例

//引数を取って戻り値を返したい場合の例
func calculation(a:Int, b:Int) -> Int {
    let result = a + b
    return result
}

この例は Int型 の 引数 a と、Int型の 引数 b を宣言して、 ab に入力された値を演算し、その結果を Int型 で返すというだけの関数です。
return で返したい戻り値の型と、 -> の戻り値の型名の所は同じ型でなければエラーになります。

この関数を実行するときの例

//引数を取って戻り値を返したい場合の例
func calculation(a:Int, b:Int) -> Int {
    let result = a + b
    return result
}

//実行例
var c = calculation(a: 1, b: 2)
print(c) //3

関数calculation の 引数 ab にそれぞれ 12 を入力して演算された結果を 変数 c に代入しています。
関数の処理の内容は a + b と足し算になっているので、1 + 2 の演算結果が 変数 c に代入されます。

数値型の演算 についてはこちらで紹介しています。

functionコードimg

この他に引数あり戻り値なしのパターンや、引数なし戻り値ありで書くこともできます。
引数がない関数はいつどこで呼び出そうと処理が同じなので汎用性は低いと思いますが、任意のタイミングで同じ処理を複数回したい場合などは、一度定義しておけば後は呼ぶだけなのでコード量も減らせて可読性も良くなると思います。
以上 関数 についてでした。

次回は 構造体 について書いていこうと思います。

実行環境

version
Xcode 14.2 (14C18)
Swift 5.2.4

公式ドキュメント

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/

投稿者: tomo

30代経験ゼロからプログラミングを始めて、趣味でiOSのアプリを作って遊んでる人。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です