def メソッド (引数): 型 = {}
……実行する処理……
変数 = ( 引数の定義 ) => ……処理……
変数:(引数の型) => 返り値の型 = (引数の定義) => ……処理……単純に関数をオブジェクトとして変数などに代入するのであれば、1つ目の書き方で十分です。Javaのジェネリックのように、引き渡すそれぞれの値の型を明示的に指定したい場合には後者のような書き方ができます。
import java.util._これは、引数に指定した値までの合計を計算して返すメソッドtotalを定義し利用する例です。def ~で定義をするメソッドは、Javaと同様、オブジェクトやクラスの中に用意をします。mainで、totalを呼び出していることがわかるでしょう。
object myapp {
def main(args: Array[String]) = {
val rnd = new Random
val n = rnd.nextInt(100)
println(n + "までの合計:" + total(n))
}
def total(num: Int) = {
var res:Int = 0
for(n:Int <- Range(1,num + 1))
res += n
res
}
}
import java.util._ここでは、val totalという形で定数を用意し、これに関数オブジェクトを代入しています。printlnにあるtotal(n)は、「変数totalに収められている関数を呼び出す」という意味に変わります。関数はオブジェクトとして変数に入れてやり取りしたりできることがわかります。
object myapp {
def main(args: Array[String]) = {
val total = (num: Int) => {
var res:Int = 0
for(n:Int <- Range(1,num + 1))
res += n
res
}
val rnd = new Random
val n = rnd.nextInt(100)
println(n + "までの合計:" + total(n))
}
}
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
●リスト1 import java.util._ object myapp { def main(args: Array[String]) = { val rnd = new Random val n = rnd.nextInt(100) println(n + "までの合計:" + total(n)) } def total(num: Int) = { var res:Int = 0 for(n:Int <- Range(1,num + 1)) res += n res } } ●リスト2 import java.util._ object myapp { def main(args: Array[String]) = { val total = (num: Int) => { var res:Int = 0 for(n:Int <- Range(1,num + 1)) res += n res } val rnd = new Random val n = rnd.nextInt(100) println(n + "までの合計:" + total(n)) } }
<< 前へ | 次へ >> |