内容简介:在 scala 中,任何表达式、语句都有返回值;而比较特殊的有以下几种情况:
Scala <1>
scala 中的返回值
在 scala 中,任何表达式、语句都有返回值;而比较特殊的有以下几种情况:
- 块语句
即形如这样的语句:{} 块的值取决于其内最后一个表达式的值,如:{ val r = r * 2; val a = 1 + 3;},那么这个块表达式的返回值就是 int,因为 a 的类型是 int -
条件表达式语句
在 scala 中 if/else 的表达式是有返回值的,这个值就是跟在 if/else 之后的表达式的值,例如:
if ( x > 0 ) 1 else -1,上述表达式的返回值是 1或者-1,同时这个值也是 if/else 的返回值,你可以将这个返回值赋给一个变量打印输出一下val i = (if ( x > 0 ) 1 else -1),可以看到返回值确实是 int 如图所示: -
赋值语句表达式
在 scala 中,赋值动作本身的返回值是 Unit 类型的,unit 类型的返回值并不是空,而是它返回的是一个空的值,就相当于 java 系列语言中的 null 和 "" 的区别
【注意】,由于赋值语句的返回值是 Unit,因此如果某个块语句是以赋值语句作为最后一条执行语句的话,那么这个块语句的返回值就变成了 Unit;同时由于赋值语句返回值的特殊性,因此你不能像 java 系列语言那样写:`x = y = 1 `,这样是错误的,因为 y = 1 的返回值是 Unit,相当于你将一个 Unit 的空值赋值给一个变量,这样做是没有意义的,当然了,如果你非要这样做,那我告诉你这样做也是正确的,并不会报错,只是它没有意义,不信看下图:
输入和输出
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Machine Learning
Kevin Murphy / The MIT Press / 2012-9-18 / USD 90.00
Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then ......一起来看看 《Machine Learning》 这本书的介绍吧!