文档章节

2016/01/29 Scala学习4

倔强的萝卜
 倔强的萝卜
发布于 2016/01/29 09:55
字数 351
阅读 11
收藏 0
  1. 可变参数

    Scala 允许你指明函数的最后一个参数可以是重复的,即我们不需要指定函数参数的个数,可以向函数传入可变长度参数列表。Scala 通过在参数的类型之后放一个星号来设置可变参数(可重复的参数)。例如:

    object MyScalaClass3{
      def main(args:Array[String]) {
        printStrings("A", "BB", "CCC")
      }
      def printStrings(args:String*) : Unit = {
        for (arg <-args){
          println(arg)
        }
      }
    }

  2. 函数的柯里化

    柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。

    def add(x:Int)=(y:Int)=>x+y

    那么这个函数是什么意思呢? 接收一个x为参数,返回一个匿名函数,该匿名函数的定义是:接收一个Int型参数y,函数体为x+y。对add的调用代码如下:

    val result = add(1)
    val sum = result(2)
    第一行返回一个result函数,那result的值应该是一个匿名函数:(y:Int)=>1+y
    所以为了得到结果,我们继续调用result。第二行代码,求出了1+2的值,所以结果是3,而这两行代码可以合成一行:

    val x = add(1)(2), 得到结果也是3,存在变量x中。

     

© 著作权归作者所有

共有 人打赏支持
倔强的萝卜
粉丝 1
博文 21
码字总数 15733
作品 0
长春
2016大数据唯一完整版教程

大数据教程(2016版) 链接: https://pan.baidu.com/s/1qXT9WwG 密码: qrht 2015-12-22_linux 2015-12-24_linux 2015-12-29_MapReduce 2015-12-31_MapReduce 2016-01-05_MapReduce 2016-01-0......

大象分享
2017/02/15
1K
0
第864期机器学习日报(2017-01-29)

机器学习日报 2017-01-29 深度学习MATLAB实例入门 @爱可可-爱生活 可以应用在CPU和GPU上高效并行的CTC代码库 @爱可可-爱生活 “Benchmarking State-of-the-Art Deep Learning Software Tool...

ai100_ml
2017/01/30
0
0
Spark常见问题汇总

注意:如果Driver写好了代码,eclipse或者程序上传后,没有开始处理数据,或者快速结束任务,也没有在控制台中打印错误,那么请进入spark的web页面,查看一下你的任务,找到每个分区日志的s...

ifree613
2016/03/03
8.7K
0
Scala 2.12 发布计划

Scala 2.12 会要求 Java 8,Scala 2.11 将会继续支持 Java 6。以下是 Scala 2.11 和 Scala 2.12 的共有特性: Compile lambdas efficiently using method handles. (Separate compatibility ......

oschina
2014/07/01
2.4K
6
spark相关错误和解决方法

1 概述 Spark的on Yarn模式,其资源分配是交给Yarn的ResourceManager来进行管理的,但是目前的Spark版本,Application日志的查看,只能通过Yarn的yarn logs命令实现。 在部署和运行Spark App...

不语者
2016/11/04
385
0

没有更多内容

加载失败,请刷新页面

加载更多

关于pip

我在更新pip的时候碰到的一些问题。 第一次安装,直接安装就ok了,所以也没研究,没想到后来由于安装了python2.x和python3.x之后出现了问题。 如果要将pip更新到最新版本需要指明是哪个版本的...

恰东
33分钟前
1
0
对硬盘进行分区时,GPT和MBR有什么区别

在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。 GPT带来了很多新特性,但MBR仍然拥有最好的兼容性。GPT并不是Windows专用的...

yizhichao
35分钟前
3
0
区块链教程btcpool矿池源码分析StratumServer模块解析

兄弟连区块链教程btcpool矿池源码分析StratumServer模块解析 核心机制总结 接收的job延迟超过60秒将丢弃 如果job中prevHash与本地job中prevHash不同,即为已产生新块,job中isClean状态将置为...

兄弟连区块链入门教程
35分钟前
1
0
JS中的异常捕获

JS中的异常捕获(目的:把抛出的错误捕获到,不让其阻断浏览器的继续执行) try{//需要执行的JS代码(可能会报错)}catch(e){//try中代码报错,会执行catch}finally{//不管try中的代...

NDweb
45分钟前
2
0
ObjectARX_AcDb2dPolyline复杂实体

1遍历:访问或者编辑复杂实体也需要通过特定的方式。 AcDb2dPolyline的顶点信息不能通过AcDb2dPolyline对象直接得到,需要遍历AcDb2dPolyline所包含的AcDb2dVertex对象: void IteratePolylin...

一个小妞
47分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部