Scala布教の会(2)関数その一

Jyonsty
記事: 3
登録日時: 13年前

Scala布教の会(2)関数その一

投稿記事 by Jyonsty » 13年前

さて、前回は変数、定数について書きました。今回は関数ですね。
まず。Scalaは関数型言語とオブジェクト指向をミックスした言語です。
そのため、「関数」と一口に言っても、実はJavaとは違い、いろいろな書き方や使い方があります。
今回はその中の「関数を定義する」って段階のとこだけ説明を書こうと思います。

まずはメソッドの書き方から。

CODE:

def funcName(argName:typeName,argName:typeName):retTypeName{
//処理を記述
return retValue
}
funcName:関数名 argName:引数名
typeName:型名 retTypeName:戻り値の型名(結果型) retValue:戻り値(結果)です。
引数は22個までとれます。
もしreturnが記述されていなかったら最後に評価された値が自動的に戻り値(結果)になります。
こんな書き方してもわかりづらいんでサンプルプログラムを。

CODE:

 /* 最大値を返す関数 */
def max(x : Int , y : Int):Int = {
     if(x > y) x 
     else y
}
ここでは最後に評価される値が、x > yのときx、それ以外のときyとなるので、大きいほうの値が返されるわけなのです。
使い方はこうです。

CODE:

max(10,20)
まぁ今日も眠いのでこの辺にします。明日は「一人前の存在としての関数」を書きます。

naohiro19
記事: 256
登録日時: 15年前

Re: Scala布教の会(2)関数その一

投稿記事 by naohiro19 » 13年前

この場合だとx = 10, y = 20になるので x > y を満たさないので結果的に 20 が 返却値として返す ですね

Jyonsty
記事: 3
登録日時: 13年前

Re: Scala布教の会(2)関数その一

投稿記事 by Jyonsty » 13年前

そうですね。
すみません。僕の記述不足です。