Scala <1>

栏目: Scala · 发布时间: 7年前

内容简介:在 scala 中,任何表达式、语句都有返回值;而比较特殊的有以下几种情况:

Scala <1>

scala 中的返回值

在 scala 中,任何表达式、语句都有返回值;而比较特殊的有以下几种情况:

  1. 块语句
    即形如这样的语句:{} 块的值取决于其内最后一个表达式的值,如: { val r = r * 2; val a = 1 + 3;} ,那么这个块表达式的返回值就是 int,因为 a 的类型是 int
  2. 条件表达式语句

    在 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 <1>

  3. 赋值语句表达式

    在 scala 中,赋值动作本身的返回值是 Unit 类型的,unit 类型的返回值并不是空,而是它返回的是一个空的值,就相当于 java 系列语言中的 null 和 "" 的区别

    【注意】,由于赋值语句的返回值是 Unit,因此如果某个块语句是以赋值语句作为最后一条执行语句的话,那么这个块语句的返回值就变成了 Unit;同时由于赋值语句返回值的特殊性,因此你不能像 java 系列语言那样写:`x = y = 1 `,这样是错误的,因为 y = 1 的返回值是 Unit,相当于你将一个 Unit 的空值赋值给一个变量,这样做是没有意义的,当然了,如果你非要这样做,那我告诉你这样做也是正确的,并不会报错,只是它没有意义,不信看下图:

    Scala <1>

输入和输出

如果要打印一个值,我们用 print 或 println 函数,但是 println 会在打印的内容后自动追加一个换行符,类似于 shell 编程中的 echo sssecho -n sss 的区别(学习知识注意联想,触类旁通),如果要记忆也简单,println 后面带有 ln ,那就是代表换行了

Scala <1>

另外还有一个带有格式化的输出 printf 函数,就像这样使用:

Scala <1>

关于输入的内容,我这里不做过多介绍,只给出两个例子,具体请参考官网 标准输入 (当前scala版本:2.12.8)

Scala <1>


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Machine Learning

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》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具