scala 学习(十六)——闭包和柯里化

来源:互联网 发布:ubuntu无法显示中文 编辑:程序博客网 时间:2024/06/16 03:13

scala 学习(十六)——闭包和柯里化

下面是闭包和柯里化的例子程序:
//变量不在作用域时函数仍然可以调用object main{    def main(args:Array[String]){        //闭包        def mulby(factor:Double) = (x:Double) => x * factor        var a = mulby(3)        var b = mulby(0.5)        println(a(2) + b(9))        println("==========")        //currying 柯里化        //将函数中的两个函数变为一个函数,并且把原来函数的第二个参数当做参数        def add(a:Int) = (b:Int) => a+b        var temp = add(1)(2)        println(temp)        println("==========")        //简单定义柯里化        def addnew(a:Int)(b:Int) = a+b        var cc = addnew(12)(22)        println(cc)        println("==========")        //柯里化的简单应用        def trimul(a:Int)(b:Int)(c:Int) = a * b * c         var tries = trimul(2)(4)(5)        println(tries)            }}

运行结果:

0 0