什么';在打印集中,scala与这两个的区别是什么
我正在学习Scala编程语言,对此感到困惑:什么';在打印集中,scala与这两个的区别是什么,scala,scala-collections,Scala,Scala Collections,我正在学习Scala编程语言,对此感到困惑: var set = Set("hello", "world") set += "Tom" println(set) println(set += "Tom") 将输出第一次打印 Set(hello, world, Tom) 但第二个将输出 () 那么,为什么它们不同呢,我想println(set+=“Tom”)会先做,set+=“Tom”,然后打印结果?不是吗?在scalaa+=b中,将a=a+b分解为a。赋值表达式的类型为“单位”。因此,
var set = Set("hello", "world")
set += "Tom"
println(set)
println(set += "Tom")
将输出第一次打印
Set(hello, world, Tom)
但第二个将输出
()
那么,为什么它们不同呢,我想
println(set+=“Tom”)
会先做,set+=“Tom”
,然后打印结果?不是吗?在scalaa+=b
中,将a=a+b分解为a
。赋值表达式的类型为“单位”。因此,与C或Java不同,赋值表达式的结果不在左边,而是在单位值中。在scalaa+=b
Desugars toa=a+b
中。赋值表达式的类型为“单位”。因此,与C或Java不同,赋值表达式的结果不在左边,而是在单位值中。正如@pedrofurla已经回答的那样,第二个打印显示赋值的结果,即用()
表示的单位
此外,请注意,我们可以打印计算以下由花括号分隔的块的结果
println( {set += "Tom" ; set} )
Set(hello, world, Tom)
也就是说,将“Tom”
添加到集合
中作为第一个表达式,然后将更新后的集合
作为块计算的最终结果进行传递。正如@pedrofurla已经回答的那样,第二次打印显示赋值的计算结果,即用()
表示的单元
此外,请注意,我们可以打印计算以下由花括号分隔的块的结果
println( {set += "Tom" ; set} )
Set(hello, world, Tom)
也就是说,将“Tom”
添加到集合
作为第一个表达式,然后将更新后的集合
作为块计算的最终结果交付。谢谢,这真的很有帮助,我真的很困惑,因为这与C完全不同。谢谢,这真的很有帮助,我真的很困惑,因为这与C完全不同。。