関数とは
関数は入力として引数、出力として戻り値を持つ特定の処理を一つのまとまりにしたもの。
定義方法
関数はfuncで宣言し、次のように定義します。↓
func 関数名(引数名1: 型, 引数名2: 型...) -> 戻り値の値{
関数呼び出し時に実行される文
必要に応じてreturn文で戻り値を返却する
}
引数は()の中に 引数名: 型 で区切り定義。戻り値は()のあとの -> に続けて定義します。
戻り値を返す際にはreturn文を使用します。
例
func double(number: Int) -> Int {
let result = number * 3
return result
}
let originNumber = 10
let doubleNumber = double(number: originNumber)
print(doubleNumber) //30
実行方法
関数は関数名に()をつけて、()の中に入力となる引数と引数名を、区切りで記述して実行します。
関数名(関数名1: 引数1, 関数名2: 引数2...)
戻り値は変数や定数に代入することができます。
let 定数名 = 関数名(関数名1: 引数1, 関数名2: 引数2...)
戻り値が定義されてる関数を呼び出す場合は、戻り値を変数や定数に代入します。
Xcodeでは戻り値の代入を省略するとエラーが出るので、戻り値が不要なさいは _ の代入によって戻り値を無視することができる。
引数
引数-関数への入力を表され引数は名前と型で構成されます。
仮引数と実引数
関数の引数は、(1)関数の定義時に宣言するものを指す場合と、(2)関数の呼び出し時に指定するものを指す場合の2通りある。前者(1)が引数、後者(2)が実引数と言う。
func printInt(_ int: Int) {
print(int)
}
printInt(1)
⬆️上記のコードでは、関数の定義時に宣言しているintが仮引数になり、関数の呼び出し時に指定している1が実引数です。
戻り値
戻り値-関数の出力を表す値です。関数宣言時に定義し呼び出し側は定義された戻り値の値を出力として受け取ることができます。
戻り値がない関数
戻り値の型の指定は必須ではないため、戻り値が不要な場合は関数宣言時に戻り値の型の定義を省略することができます。
func greet(user: String) {
print("Hello,\(user)!")
}
greet(user: "Arakawa")
Hello,Arakawa!
⬆️上記のgreet(user:)関数は、print(_:)関数を用いて文字を出力しているだけで呼び出し元には何も返していません。
コンパイラによる戻り値チェック
関数宣言で定義されている戻り値の型と実際の戻り値の方が一致するかは、
コンパイラによってチェックされる。
定義された戻り値の型と一致しない型を返すプログラムはエラーになります。
例
func test() -> Int {
let string = "Hello!"
return string // コンパイルエラー
}
test()
エラー
↪︎ Cannot convert return expression of type 'String' to return type 'Int'
内容-「String」型の戻り式を「Int」型に変換できません
暗黙的なreturn
関数の実装が戻り値の返却のみで実装されている場合は、returnキーワードを省略することができます。この仕様のことを暗黙的なreturnと言い、戻り値の返却のみで実装されている関数はこのような関数になります。
func test() -> Int {
100 + 100
}
print(test())
実行結果
200
⬆️上記のコードでは、100 + 100の結果が返却できる型の値と別の処理が書かれていないので暗黙的なreturnが行われる
インフォメーション
100 + 100 以外の処理を書くときはreturnキーワードが必要になります
今回は学習の復習と見直しを兼ねて記事にしました!
間違っているところあれば連絡ください!