博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scala 学习笔记六 推导
阅读量:6848 次
发布时间:2019-06-26

本文共 553 字,大约阅读时间需要 1 分钟。

  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

 

转载于:https://www.cnblogs.com/shaosks/p/9360680.html

你可能感兴趣的文章
MySQL 大小写
查看>>
Python 创建Django项目
查看>>
基于python的REST框架eve测试与mongodb的数据操作
查看>>
Lync 2013部署图片赏析-证书服务安装配置
查看>>
HTML5 本地缓存 (web存储)
查看>>
tomcat redis session共享(包含redis安全设置)
查看>>
iptables中DNAT、SNAT和MASQUERADE的作用
查看>>
kvm命令学习记录
查看>>
小菜鸡进阶之路-First week
查看>>
ORACLE 10g SYSAUX表空间快速增长之WRH$_ACTIVE_SESSION_HISTORY篇
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
自适应布局
查看>>
子数组的和的最大值(包括升级版的首尾相连数组)
查看>>
LeetCode - Nth Highest Salary
查看>>
9.ORM数据访问
查看>>
(转)Redis
查看>>
WIN10常用快捷键
查看>>
href=“javascript:”vs href=“javascript:void(0)”
查看>>
win10文件夹无法打开,双击闪屏
查看>>