30歳高卒男子がプログラミングを習得してみるブログ -32ページ目

30歳高卒男子がプログラミングを習得してみるブログ

今年30歳になった高卒男子が自分で稼げるスキルを身に着けたいと思いたちSwiftのコードを学習しています。
最近はHTML/CSSとJavascriptをやってます。そのうちまた、スイフトもやろうと思ってます。

みなさんこんにちは!!

 

今日は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"などオーギュメントラベルとして使いたい文字を書くとそれをオーギュメントラベルとして使うことができ、"_ "を書くとオーギュメントラベルを書かなくてよくなります。

書いてて思ったけど、あんまり面白みなかったですわ。どうやって使うんだろこれ。なんか逆にややこしくね?

 

とりあえず今日は月曜日で疲れたんでこのへんで。

おやすみなさい。