zoukankan      html  css  js  c++  java
  • Scala中的函数表达式

        最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此

    Scala中的Lambda表达式

    在函数式编程中,函数是基本的构造块。Scala融合了java中的面向对象编程和函数式编程。在Scala中,一个lambda表达式是种叫做“函数”或者“函数文本”。Scala中的函数属于一等公民。它们可以被分配给vals或者vars(最终变量或者非最终变量),它们可以作为其他函数的参数,也可以组合成新的函数。
    在Scala中一个函数文本写成如下形式:
    1
    (argument) => //funtion body
    举例来说,前面提到的java 用来计算两个字符串长度差的 lambda 表达式,在Scala中写作如下:
    1
    (s1: String, s2 :String) => s1.length - s2.length
    Scala中的函数文本也是闭包。它可以访问在直接词法作用域之外定义的变量。
    1
    2
    3
    4
    val outer =10
    val myFuncLiteral = (y: Int) => y * outer
    val result = myFuncLiteral(2)
    > 20
    这个例子结果是20.
    正如你所见,我们将函数文本分配给了变量 myFuncLiteral。
    java 8 的lambda表达式和Scala的函数文本在语法和语义上的相似性是十分明显的。从语义上讲它们是相同的,而语法上的唯一不同就是箭头符号(java8 ->, scala =>)和我们没有提到的简化符号。
     
    引用:http://my.oschina.net/atttx123/blog/66425
  • 相关阅读:
    Linux系统安装Apache 2.4.6
    Redhat Server 5.7 安装配置PHP
    ORACLE基本数据类型总结
    Nagios学习实践系列——产品介绍篇
    Linux技术修复
    python的特殊方法:
    python获取对象信息
    python多重继承:
    python多态
    python类的继承
  • 原文地址:https://www.cnblogs.com/inspursu/p/4276469.html
Copyright © 2011-2022 走看看