2014-12-06 111 views
1

根據Scala教程,我們需要在使用scala filename執行之前使用scalac filename.scala編譯Scala代碼。但是當我嘗試像scala filename.scala,它運行並獲得輸出。Scala代碼在不使用scalac編譯的情況下運行?

這是爲什麼?所以編譯使用scalac不需要運行代碼?有人可以解釋這一點。

謝謝。


scala -help真的很有幫助。它說

A file argument will be run as a scala script unless it contains only 
    self-contained compilation units (classes and objects) and exactly one 
    runnable main method. In that case the file will be compiled and the 
    main method invoked. This provides a bridge between scripts and standard 
    scala source. 

感謝丹尼斯的指針。

+0

Scala可以用作一種腳本語言,並且可以從更新的版本開始(不記得是哪個),這是可能的,運行代碼甚至不需要定義類或對象 – billpcs 2014-12-06 15:48:57

+0

@DoomProg有趣的。當你說「運行代碼時甚至沒有定義類或對象」時,你是否指Scala Worksheet? – crackjack 2014-12-06 17:20:21

+1

@crackjack不僅。試着用println(「hello」)製作一個文件,然後用scala命令運行它。如果你的Scala 2.10以上,我認爲你應該能夠得到這個消息。 – billpcs 2014-12-06 19:36:02

回答

4

運行scala命令實際上首先在幕後進行編譯,然後運行生成的程序。

+1

所以,正如你所說,應該生成類文件。這些文件用於運行。但我找不到任何類文件,在當前目錄中生成。那麼這個類文件應該放在哪裏? – Maximin 2014-12-06 17:34:02

+1

@Maximin在主內存中 – sschaef 2014-12-06 17:49:29

+0

@sschaef謝謝。如果我得到一些鏈接或指向文檔解釋這一點,這將是非常好的。有趣的是,幾乎所有我介紹的教程都錯過了引用。 – Maximin 2014-12-06 17:54:17

1

此行爲在scala命令的幫助中進行了說明。

您可以通過執行scala -help命令來獲得幫助。

+0

謝謝丹尼斯。 – Maximin 2014-12-06 18:13:07

相關問題