scala学习笔记(二) 控制语句

Scala的大部分表达式都有返回值,所以可以将表达式负值给其他变量或者作为参数传递

 

如果一个表达式或者函数没有输出值则由系统默认返回一个Unit作为占位,表示为(),你可以在print中打印出来看。

 

传统其他语句的赋值如

x=y=1

 

这样的语句在scala里面得到的结果不是你想要的,这个语句的结果是y=1,但是x=(),也就是Unit

 

Scala的高级for循环以及推导式

for(i <- 1 to 3;j <-1 to 3)

这里for循环是一个双重循环,按传统多重循环来看,i层在j之前,在这样的循环中,还可以在后面增加一个守卫,如下

for(i <- 1 to 3;j <-1 to 3 if i!=j)

这里后面的if称为守卫,与前面的推到式之间没有分号

如果在for循环的循环体以yield开始,则整个for循环表达式的返回值是一个集合,例如:

for(i <- 1 to 3) yield i%3

  //会生产Vector(1,2,0)

这种以yield开始循环叫做for推导式

 

前面循环体中使用的i<- 1 to 3,这样的遍历是1,2,3

如果你并不需要末尾的值,则可以使用until ,例如:

i <- 1 until 3 //这样的生成器生成器遍历1,2

 

 

函数与方法

函数独立于类,用于实现一些计算,不改变其他状态,java中的函数只有使用静态类方法来模拟

方法用于修改对象的属性

 

scala中除非是递归函数,否则我们都可以省略返回类型的定义

 

默认参数和带名参数

scala中可以使用默认参数:在函数定义是给出默认参数值,如下:

defdecorate(str: String,left : String="[",right: String="]")=left + str+right

 

这样的函数,如果在调用时以显示的名称=值的调用,则不用在意参数顺序

 

如果一个函数需要一个数组作为参数,你可以使用_*告诉编译器将你的区间作为一个序列来处理,如下

Val s =sum(1 to 5:_*)//1 to 5当做参数序列处理

 

没有返回值的函数被称作 过程,我们调用它仅仅是为了它的副作用。

 

懒值类似于java中的final,可以将他的初始化延迟到首次对他赋值,使用lazy 关键字。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ALAN-YOUNG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值