如何在終端下運(yùn)行Scala代碼片段?

REPL: read-eval-print loop 交互式工具

很多編程語言都提供了repl工具,使用repl可以便捷地鍵入代碼段,并以交互方式立即看到代碼運(yùn)行結(jié)果。除了可以執(zhí)行代碼片段外,repl還可以提供一些在運(yùn)行時(shí)不方便獲取的細(xì)節(jié)。例如可以推斷變量或函數(shù)類型。

要啟動(dòng)repl,只需要在終端或者命令行輸入scala,就可以了。若要退出repl,使用英文格式的:quit。

在repl模式下,出了手動(dòng)輸入代碼,還可以用:load選項(xiàng)從文件加載代碼到shell中。例如:

>scala :load Hello.scala

scala命令有兩種運(yùn)行模式,一種是交互式的shell,另一種是批處理模式。從上面的例子來看,如果不給任何參數(shù),是進(jìn)入到了交互模式。但是如果提供一個(gè)文件名,那么它可以在一個(gè)獨(dú)立的JVM中運(yùn)行這些代碼。

>scala Hello.scala
Hello scala,welcome to scala. 

程序的輸入?yún)?shù),都寫在命令中文件名的后面。不需要其他的步驟,就可以直接運(yùn)行腳本文件中的代碼。

可能會(huì)有疑問,好想沒有main方法,怎么能執(zhí)行?其實(shí)是有的,只是它是隱式的。在文件名前使用 -savecompiled(或-save) 選項(xiàng),就可以看到在執(zhí)行scala命令時(shí)生成的字節(jié)碼,scala命令會(huì)把這些字節(jié)碼保存到一個(gè)JAR文件中。

類unix環(huán)境以獨(dú)立腳本方式運(yùn)行Scala代碼

大多數(shù)操作系統(tǒng)都支持shebang語法來運(yùn)行任意腳本。只要系統(tǒng)上安裝來Scala,采用這種方式無需顯式調(diào)用scala命令并無縫工作。

關(guān)于shebang,它是由#!構(gòu)成的序列,通過在腳本文件開頭加上shebang,來指定以何種方式運(yùn)行當(dāng)前腳本。例如以Scala方式運(yùn)行,則在腳本hello.sh開頭寫上:
hello.sh

#! /usr/bin/env scala
println("hello" + args(0) )

然后,為腳本文件提供執(zhí)行權(quán)限。

> chmod + x hello.sh

最后,就可以在命令行運(yùn)行hello.sh腳本了。

> ./hello.sh myScala

myScala是傳遞給腳本的參數(shù),運(yùn)行結(jié)果如下:

> hello myScala


windows環(huán)境以獨(dú)立腳本方式運(yùn)行Scala代碼

在windows中,通過配置后,雙擊就可以實(shí)現(xiàn)運(yùn)行Scala腳本。

首先編寫一個(gè)雙擊要運(yùn)行的Scala腳本。文件上右鍵,選擇屬性,設(shè)置其默認(rèn)打開方式,瀏覽Scala的安裝位置,選擇scala.bat作為Scala腳本文件打開的默認(rèn)方式。最后雙擊就可以運(yùn)行它了。

此時(shí)會(huì)看到執(zhí)行的彈窗一閃而過,這是windows默認(rèn)的效果。如果要一直顯式執(zhí)行的結(jié)果,可以新建一個(gè)內(nèi)容如下的RunScala.bat文件:

echo off

cls
call scala %1
pause

將執(zhí)行Scala腳本的默認(rèn)方式,由scala.bat修改為RunScala.bat,就可以看到執(zhí)行結(jié)果的窗口了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容