クロージャーの利点について書かれてあります。
○コード削減重視バージョン
...............
def output(sw:Int)={
val sum=....
.......
for (.............
for (k<-0 to3){
.......................※計算あり....
if (sw==1) .......
else .................
println(output(1))
println(output(2))........
これだと、その都度、※の部分で同じ計算がされてしまう
○クロージャーバージョン
def output() ={
val sum= ......
.........
for(...........
for (k<-0 to3){
.......................※計算あり....
}
(sw:Int)=> { //クロージャー生成
....
for (k<-0 to 3) {.............
if (sw==1) .......
else .................
val f=opuput()
println(f(1))
println(f(2))
................
※の部分がクロージャーの外側にあるので、最初の1回しか実行されない。
ということのようだ。
いろいろなサイトでも、クロージャーについてわかりやすく書かれているので参考になりました。javascriptやjqueryでも利用されているのだと、今頃になって知りました。
0 件のコメント:
コメントを投稿