关于Scala中表达式的值

Scala的一个独特之处在于所有表达式都有值。if else条件表达式的值来自选择分支的最后一个表达式;for循环和while循环通常返回Unit,但for推导式可以有返回值;赋值操作返回Unit,不同于Java中的连续赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Scala中,任何表达式都是有值的,这是其语言特性中比较特殊的地方,主要体现在一下三个方面:
(1)if else条件表达式的值是每个分支的最后一行代码的结果:

print(if(1 > 2) 1 else 2)  --2
print(if(true) println(1) else print(2)) --()

(2)一般情况下,for循环和while循环表达式的值是Unit:

var t = for(i <- 1 to 5){print(i)}
print(t)
var i = 1
var k = while(i <= 3){print(i);i+=1}
print(k)

结果都是()
但是for循环推导式是有返回值的:

val res = for(i <- 1 to 10) yield i
println(res)
//输出
Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

(3)赋值语句的返回值是是Unit(在Java中是可以连续复制的)

val a = b = c
//等价于 
val a = (b = c)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值