zoukankan      html  css  js  c++  java
  • scala高阶函数之闭包

    闭包往往和匿名函数一起使用, 可以读到其它函数内部变量的函数,即例子中的匿名函数可以读取到前面函数中的变量。

    是将函数内部与函数外部连接起来的桥梁。

    可以理解为在函数内部定义的函数就是闭包

    package day3
    
    object demo_closeur {
        def main(args: Array[String]): Unit = {
            def mulby(fact:Double) =(x:Double)=>fact * x   // 闭包往往与匿名函数搭配使用
            // 闭包的使用
            val full = mulby(3)  // (x:Double)=>3 * x
            val half = mulby(0.5) // (x:Double)=>0.5 * x
            println(full(14) + "=====>" + half(14)) // (14:Double)=>3 * 14
    
            // 第二个示例
            def a(x:Int,y:Int) = (z:Int) =>x * y *z
            // 柯里化调用
            println(a(2,3)(4))
            // 分开调用
            val t1 = a(2,3)
            val t2 = t1(3)
            println(t2)
        }
    }
  • 相关阅读:
    SDOI2017 树点染色
    ZROI week1
    ZROI week3
    BZOJ 4545
    ZROI week2
    组合数问题
    JSOI2016 独特的树叶
    TJOI2015 组合数学
    Beginning Storyboards in iOS 5 Part 2
    孕妇不能吃的东东
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15161574.html
Copyright © 2011-2022 走看看