首页 > 其他 > 详细

scala 学习笔记六 推导

时间:2018-07-24 17:20:56      阅读:330      评论:0      收藏:0      [点我收藏+]

  1、介绍

    在Scala中,推导将生成器、过滤器、和定义组合在一起。

 

  2、例子

    技术分享图片

    有一种将result用作val(而不是var)的方式,:“就地”构建result,而不是逐项构建,利用yield关键字,当你声明yield n时,它会把n交出来,使其成为result的一部分,下面的例子

 

    技术分享图片

 

    yield 总是会填充容器,但是在第194行并没有声明result的类型,Scala会从推导要遍历的容器中推断出类型。还可以在推断内部定义值。

 

    技术分享图片

    注意:没有将n和isOdd声明为val或var。n和isOdd在循环中每次迭代时都会发生变化,但是不能人为修改他们,依靠Scala来完成这个任务。可以将他们看作循环每次迭代时都会设置其值的临时变量。

    

    yield表达式也可以组合

    技术分享图片

    注意,只有在推导内部才能不为新标识符声明val或var

    

    推导可以嵌套

    技术分享图片

    这里我们让类型推断来确定yielding3的返回类型,每个yield都会产生一个Vector,因此最终结果是一个Vector的Vector

 

scala 学习笔记六 推导

原文:https://www.cnblogs.com/shaosks/p/9360680.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!