9.2 Kotlin的REPL交互式shell
与本书前面介绍的两种语言(Scala和Clojure)一样,Kotlin也提供了REPL交互式shell,可用于以交互的方式尝试运行Kotlin代码片段。前一节说过,要启动这个REPL,可在不指定任何参数的情况下运行编译器启动脚本(在Windows中,可加上扩展名.bat,但并非必须这样做):
kotlinc-jvm
你也可以运行启动脚本kotlinc,因为JVM是Kotlin的默认编译目标。
REPL shell实现了几个内置命令。在Kotlin REPL中,无需调用Java类库方法来退出shell。
| 命令 | 描述 |
|---|---|
:help
| 显示包含REPL内置命令的帮助屏幕 |
:quit
| 用于退出REPL |
:dump bytecode
| 对于当前会话期间生成的所有代码,将其转换为Java字节码并以可读的文本格式存储。对大多数最终用户来说,这没什么用,但想研究Java字节码的高级程序员会感兴趣 |
:load FILE
| 在当前REPL实例中加载文件(请将FILE替换为包含Kotlin源代码的文件的完整路径) |
编写本书期间,Kotlin REPL好像存在一些严重的可靠性问题,尤其是在Windows平台中上。复制并粘贴代码时,它常常拒绝使用独立编译器能够编译的代码;另外,编译完全正确的代码时,这个程序时不时会挂起。但愿这些问题在以后的版本中能够得到解决。本章的代码在REPL中都能运行。
如果你在REPL中输入代码时遇到问题,可尝试将这些代码放在一个扩展名为kt的源代码文件中,再使用REPL的命令
:load来加载并处理这个文件。需要注意的是,如果你使用的是Windows,必须将源代码文件转换为Linux换行(end of lines,EOL)格式。
在Windows系统中使用命令:load时,必须使用能够将文件保存为Linux EOL格式的文本编辑器,因为编写本书期间,命令:load不支持Windows的CR + LF换行格式。一个这样的免费开源编辑器是Notepad++,该编辑器可从http://notepad-plus-plus.org下载。

在Notepad++将文件存盘前,请选择菜单Edit>EOL Conversion>Unix (LF):

Packt网站提供的示例文件都是以Linux EOL格式存储的,以便你更轻松地运行它们。
