Scala的学习过程中,经常会碰到一些莫名其妙的现象,很多时候,这些语言层面的“怪象”都与scala编译器或者scala的类型系统有关。
本文不是对编译器和类型系统的介绍,而是重点介绍遇到这些现象的时候,用什么样的方式,拨开云雾见蓝天,通过这些工具获取一些细节帮你了解编译器和类型系统如何工作。工欲善其事,必先利其器。
Read-Evaluate-Print-Loop, 是一个所有学习scala的同学都要掌握的工具,可以帮你快速测试一些代码,了解一些library怎么使用。
在安装scala之后,命令行下执行scala
,就会进入REPL.
$ scala
Welcome to Scala version 2.11.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_65).
Type in expressions to have them evaluated.
Type :help for more information.
scala>
如果是SBT项目,可以用sbt console
进入,之后操作类型,不再重复。
scala REPL有几种模式,其中比较常用的就是:paste
,可以比较方便的输入多行,不过要注意,拷贝粘贴的代码中,不要有Tab,否则会触发auto code completion,出现一堆错误提示。
通过man scala
, man scalac
,可以了解scala都有哪些参数可用。注意的是:scala的命令行参数中import了scalac的参数,所以可以在scala命令后面使用任何scalac的参数。其中比较有用的参数有:
scala -X
,scala -Y
可以分别列出当前版本所支持的所有选项。