2016-12-24 258 views
0

請理解我沒有Java背景,這是我第一次使用Scala。我是不是抨擊斯卡拉 - 只是好奇的設計決定。Scala args(0)原因

爲什麼Scala決定在其參數對象中炫耀約定是否有原因?

與我熟悉的語言相比,我期望Scala args(0)返回可執行文件的名稱和參數(1)以返回第一個參數。

Scala需要編碼器混合一些Java代碼才能獲得可執行文件的名稱(重新編號爲getting script filename and printing it),而不是使用上述「隱祕」約定。

+0

https://en.oxforddictionaries.com/usage/flaunt-or-flout –

+0

謝謝你的語法課,正如你的參考資料所表明的那樣,它的一個常見錯誤... – Steve

+0

所以很常見,也許它會變成使用(也就是說,不服從或忽視是真正的共享元素)。 –

回答

3

這是Java的方式,Scala也是如此,因爲它們都被編譯爲JVM字節碼並以相同的方式運行。 (如java -jar myjar.jar)

所以,道理是一樣的Java的:你可以在這裏閱讀討論一下:https://softwareengineering.stackexchange.com/questions/211073/why-does-java-not-put-the-filename-in-args

總之,通過文件名的概念是Java /斯卡拉比用C意義不大/ C++,你可以很容易地得到它,以防萬一你需要它

+0

讓我們也不要忘記Java和Scala可以在甚至沒有文件的平臺上運行,因此可以運行「文件名」的概念。 –

相關問題