Scala简单入门之变量

Posted 鸿的学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala简单入门之变量相关的知识,希望对你有一定的参考价值。

Scala是一门神奇的语言,作为一个JVM上的编译型语言,它居然有着自己的解释器(Java其实也有)。例如在shell上面输入scala就会进入下面的页面:

$ scala
Welcome to Scala version 2.10.6 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_121).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

除了可以使用界面直接和Scala交互,也可以在文本编辑器写下Scala的代码,无需编译直接运行。如果是正式的项目,也可以打包成相应的jar包运行。

既然是入门,先回到Scala的交互页面,简单输入几个基本代码习惯一下。

scala> 1 + 1
res0: Int = 2

scala>
 println("Hello World!")
Hello World!

接下来,继续看看Scala如何定义变量?

如果之前你熟悉Java的话,定义一个变量必定需要制定这个变量对应的类型,例如:

String a = "Hello World!";

此时变量a是String类型,全称是java.lang.String。而在Scala中,得益于类型推断,无需指定变量的类型,Scala会根据输入的值自动判断出变量对应的类型。

scala> val a = "Hello World!"
a: String = Hello World!

当然,如果不嫌麻烦的话,也是可以写全:

scala> val a: String = "Hello World!"
a: String = Hello World!

这一切取决于你,而这就是Scalable,Scala的奇妙之处。

在上面定义变量时,既然不需要指定变量类型,为何还需要写上一个val呢?像Python那样直接输入:

a = "Hello World!"

岂不更好?Scala作为一门多范式的语言,考虑到了这点,使用val代指的是不可变的变量,也就是说,一旦赋值不可更改。

scala> a = "Hello!"
<console>:8: error: reassignment to val
       a = "Hello!"

当再给变量a复制"Hello!"时,Scala报错了。如果需要可变的变量,则需要将val改成var。

scala> var a: String = "Hello World!"
a: String = Hello World!

scala>
 a = "Hello!"
a: String = Hello!

不可变的变量对于新接触函数式编程的人会产生极大的不适应,但是不可变的变量会使得程序变得很容易推导和可复用(具体可以阅读:http://www.defmacro.org/2006/06/19/fp.html)。想必对于val和var的抉择,更多了一丝好奇吧。

现在对于Scala的变量的介绍就到这里了,当然,如果光写变量和一大堆表达式是没啥意义,在接下的篇章会介绍Scala的函数。


以上是关于Scala简单入门之变量的主要内容,如果未能解决你的问题,请参考以下文章

Spark 入门之 Scala 语言解释及示例讲解

Scala入门系列:面向对象之object

Scala入门系列:面向对象之继承

Scala从入门到精通之四-映射和元组

Scala学习之路----基础入门

Scala的符号入门