Swiftの関数の定義方法と呼び出し方を説明します。

基本

Swiftの関数は「func 関数名(内部引数名: 型) -> 戻り値の型 {}」のように定義します。

//文字列を引数として文字列を返す関数
func hello(message: String) -> String  {
    return "こんにちは" + message + "さん";
}
//呼び出し方
let result = hello("田中");
//=>"こんにちは田中さん"

引数が2つの場合、2番目の引数に名前をつけて呼び出す必要があります。以下の例では2つの引数をとる関数を「hello2(“田中”, count: 2)」のように呼び出しています。

//文字列と整数を引数として文字列を返す関数
func hello2(message: String, count: Int) -> String  {
    return "こんにちは\(message)x\(count)さん";
}
//呼び出し方。"count"という外部引数名が必要なことに注意。
let result2 = hello2("田中", count: 2);
//=>"こんにちは田中x2さん"

外部引数名

外部から関数を呼び出す際の引数の名前(外部引数名と呼ぶ)を、関数側で明示することもできます。それぞれの引数は「外部引数名 内部引数名: 型」のように定義します。

//文字列と整数を引数として文字列を返す関数(外部引数名指定)
func hello3(withMessage mes: String, andCount count: Int) -> String  {
    return "こんにちは\(mes)x\(count)さん";
}
//呼び出し方。"andCount"という外部引数名が必要なことに注意。
let result3 = hello3(withMessage:"田中", andCount: 3);
//=>"こんにちは田中x3さん"

外部引数を指定せずに呼び出したい場合、関数側の外部引数名を指定する場所に”_”を指定します。

//文字列と整数を引数として文字列を返す関数(外部引数名省略)
func hello4(mes: String, _ count: Int) -> String  {
    return "こんにちは\(mes)x\(count)さん";
}
//呼び出し方。"count"という外部引数名が必要ないことに注意。
let result4 = hello4("田中", 4);
//=>"こんにちは田中x4さん"

規定値

引数の後ろに規定値を追加すると呼び出し時に省略することができます。
2つの引数の両方に規定値を設定すると、0、1、2個の引数を指定して呼び出せることになります。

//文字列と整数を引数として文字列を返す関数(外部引数名省略)
func hello5(message: String = "山田", count: Int = 5) -> String  {
    return "こんにちは\(message)x\(count)さん";
}
//呼び出し方。"count"という外部引数名が必要なことに注意。
let result5 = hello5();
//=>こんにちは山田x5さん
let result5a = hello5("佐藤");
//=>"こんにちは佐藤x5さん"
let result5b = hello5("佐藤", count: 50);
//=>"こんにちは佐藤x50さん"