みなさんこんにちは!!
今日はFunctionについて書いていきたいと思います。
まずはこちらのコードから。
func greet(person:String, day:String) -> String{
return "Hello \(person),today is \(day)."
}
greet(person:"Bob",day:"Monday.")
初めてのFunctionうれしいですね!
"func"の後ろにある"greet"はファンクション名、その後ろのカッコの中はオーギュメントリスト(arguments list)ですね。
ファンクションを呼び出すとこの2つが一緒に呼び出されます。
オーギュメントリストの中の"person","day"はそれぞれパラメーター名(parameter names)といいます。
{}の前の"String"はこのfunctionが返す値の型で、{}の中はこのfunctionが返す値ですね。
"->"についてはアップルの説明書に「functionの返り値の型とパラメーター名及び型を分ける(separate)ために->を使う」的なことが書いてありました。いまいち意味がわからないですね。
このプログラムを実行すると"greet"というfunctionが呼び出されて、String型で"Hello Bob,today is Monday."という値が返ってくるわけですね。
あとは、さきほど"person","day"はそれぞれパラメーター名と言いましたがこれは上のコードの場合はパラメーター名でありオーギュメントラベルでもあるみたいです。
というのも、デフォルトだとパラメーター名がオーギュメントラベルとして使われるらしいです。
これじゃあなんかあんまり面白みがないですよねぇ。
というわけでこのコード!!
func greet(_ person:String, on day:String) -> String{
return "Hello \(person), today is \(day)."
}
greet("Bob",on: "Monday")
さっきと違うのはパラメーター名"person"と"day"の前にそれぞれ"_ "と"on"がついたことと、functionを呼び出すときに"person"が書かれていなく、"day"が"on"になっていることです。
パラメーター名の前に"on"などオーギュメントラベルとして使いたい文字を書くとそれをオーギュメントラベルとして使うことができ、"_ "を書くとオーギュメントラベルを書かなくてよくなります。
書いてて思ったけど、あんまり面白みなかったですわ。どうやって使うんだろこれ。なんか逆にややこしくね?
とりあえず今日は月曜日で疲れたんでこのへんで。
おやすみなさい。