zoukankan      html  css  js  c++  java
  • 变量值的函数和借贷函数

    Scala中,函数是“头等公民”,几乎所有的操作都是以函数形式进行。同样的,能够在变量中存放函数(听上去很神奇吧)。示例如下:


    本段代码将ceil函数赋值给fun变量,ceil后面的_表名这是一个函数,而不是碰巧忘记给它传参。

     

    scala中,不需要为每个函数命名,这种没有命名的函数叫做匿名函数。如何进行匿名函数的定义呢?示例如下:

    (x:Double) => 3 * x

    这就是一个匿名函数。就好像在scala中能够把函数赋值给变量一样,我们可以把匿名函数赋值给变量:

    valtriple = (x: Double) => 3 * x

    这样的方式跟使用def定义函数一样:

    deftriple(x: Double) = 3 * x

    但是好处就是能够不给函数命名,就能直接将它传递给另一个函数。这种方法在使用mapfilter等函数时非常常用:



    由于scala有可以将函数作为参数传递给函数的特性,故从中引出了一种简单的封装模式——借贷模式。代码示例如下:


    在此代码中,我们将BufferedWriter进行了封装,只要调用autoWrite函数,传入适当的参数,就可以完成字符串写入文件,而且不需要关闭BufferedWriter。使用借贷模式是对系统资源操作的封装,为了防止资源不被安全释放,其次用户不用考虑资源来自何处,如何归还等问题,只需要使用就行了。

  • 相关阅读:
    hdu 1312 ( Red and Black )
    hdu 1429 ( 胜利大逃亡(续) )
    zjut 小X的苹果
    hdu 1253 ( 胜利大逃亡 )
    许多事
    1198 ( Farm Irrigation )
    hdu 1241 Oil Deposits
    hdu 1242 ( Rescue )
    hdu 1240 ( Asteroids! )
    zoj2966 build the electric system
  • 原文地址:https://www.cnblogs.com/yejibigdata/p/6480634.html
Copyright © 2011-2022 走看看