【Swift入門】引数や戻り値の省略など関数についてのまとめ
関数とは処理をまとめたものです。
関数に値を入れると、基本的にはその値に処理を加えて別の値を出力します。
関数は
func 関数名(引数: 引数の型) -> 戻り値の型 { return 戻り値 } |
と記述します。
引数というのは関数に入力する値のことです。
戻り値は関数が出力する値のことです。
とはいえ、初見の場合よくわからないと思うので、実際に関数を使ってみましょう。
新しく空のplaygroundを作ってください。
この記事の目次
一つの引数、戻り値ありの関数
今回は名前を入れたら『こんにちは、(入力した名前)さん』という文字列を返すような関数『Hello』を作ろうと思います。
func Hello(name: String) -> String { return “こんにちは, \(name)さん!” } |
と入力してください。
コードの説明をしておくと、この関数はnameという
String型の引数をとって、
String型の
文字列を出力する関数です。
関数は『return』の
右側の値が出力されます。
関数は作っただけでは何も起こらず、実際に使ってみることで意味を成します。
関数は
関数名(引数) |
と記述することで使うことができます。
今回は引数に『もぎ』を入れて、『こんにちは、もぎさん!』とコンソールに出力したいので、
print(Hello(name: “もぎ”)) |
と記述します。
コードの説明をしておきましょう。
Helloという関数の
nameという引数に
『もぎ』という文字列が格納されます。
すると作った関数のnameは全て『もぎ』に変わるので、
関数
Hello(name: “もぎ”)
の戻り値は『こんにちは, もぎさん!』となるはずです。
printを使ってその戻り値をコンソールに出力する記述をしているので、
コンソールには『こんにちは, もぎさん!』と出力されるはずです。
実行して実際に出力されるか確かめてみましょう。
実行ボタンを押してください。
すると、予想通りコンソールには『こんにちは, もぎさん!』と出力されますね。
複数の引数、戻り値ありの関数
また、関数の引数は複数とることもできます。
作り方は簡単で、
func 関数名(引数1: 引数1の型, 引数2: 引数2の型, 引数3, 引数3の型…) -> 戻り値の型 { return 戻り値 } |
と記述するだけです。
引数が一つの場合の関数と比較すると引数を増やしているだけですね。
実際に引数が複数ある関数を作ってみましょう。
func Hello(name1: String, name2: String, name3: String) -> String { return “こんにちは, \(name1)さん, \(name2)さん, \(name3)さん!” } |
と記述しましょう。
これで複数の値を持つ関数を作ることができたので、この関数に『もぎ』、『うつみ』、『たなか』という文字列を入れて、その結果出力される文字列をコンソールに出力してみましょう。
print(Hello(name1: “もぎ”, name2: “うつみ”, name3: “たなか”)) |
と記述しましょう。
基本的には同じ名前の関数を作ることができないのですが、引数の数が違えば違う関数として扱われるので、同じ名前の関数を作ることができます。
それでは、コードについて説明していきましょう。
引数『name1』には
『もぎ』が、『name2』には
『うつみ』が、name3には
『たなか』がそれぞれ入るので、コンソールには『こんにちは、もぎさん、うつみさん、たなかさん!』と出力されるはずです。
実際にそのように出力されるのか実行して確かめてみましょう。
実行ボタンを押してください。
実行結果を見てみると、予想通り『こんにちは、もぎさん、うつみさん、たなかさん!』と出力されていますね。
引数、戻り値なしの関数
次に引数も戻り値もない関数を作ってみましょう。
作り方は
func 関数名() { 処理 } |
と記述するだけです。
実際に『Hello, World』とコンソールに出力するだけの関数を作ってみましょう。
func HelloWorld() { print(“Hello, World!”) } |
と記述しましょう。
この関数を使うために
HelloWorld() |
と記述します。
引数をとらないので、()の中身は何も書き込みません。
この状態で実行すると関数『HelloWorld』が呼ばれてコンソールに『Hello,World!』と出力されるはずです。
実際にそうなるのか実行して確かめてみましょう。
実行ボタンを押してください。
すると、予想通りコンソールには『Hello, World!』と出力されましたね。