Scala新版本学习(2):

1.本章要点;

(1)if表达式有值;

(2)块也有值,是它最后一个表达式的值

(3)Scala的for循环就像是"增强版的"Java for循环

(4)分号不是必须的

(5)void 类型是Unit

(6)避免在函数的定义中使用return

(7)注意别在函数式定义中漏掉了=

(8)异常的工作方式和java或者c++中基本一样,不同的是你在catch语句中使用"模式匹配"

(9)Scala没有受检异常。

2.条件表达式

(1)Scala中的if/else表达式有值,这个值就是跟在if或者else之后的表达式的值。

对于java 或者c++中的?:操作符,Scala有同样的表达方式:

x>0?1:-1  //等同于if(x>0) 1 else -1

(2)Scala中每个表达式都有一个类型,如if(x>0) 1 else -1的类型是Int。对于混合类型的表达式:如下图所示,其中一个分支是java.lang.String,而另外一个分支是Int,所以公共超类是Any

(3)如果else部分缺失了,如if(x>0) 1,但是在Scala中每个表达式都有某种值。所以对于这种问题的一种解决方案是引入一个Unit类,写做()。void没有值但是Unit有一个表示"无值"的值。不带else的语句等同于

 if(x>0) 1 else ()

猜你喜欢

转载自www.cnblogs.com/bigdata-stone/p/10857336.html