Scala args(0)原因

时间:2016-12-24 15:47:27

标签: scala

请理解我没有Java背景,这是我使用Scala的第一个小时。我抨击Scala - 只是对设计决策感到好奇。

Scala是否有理由决定炫耀其 args 对象的约定?

与我熟悉的语言相比,我希望Scala args(0)返回可执行文件的名称,而args(1)返回第一个参数。

而不是利用上述'未说出口的'惯例,Scala要求编码器混合使用一些Java代码才能获得可执行文件的名称(re。getting script filename and printing it)。

1 个答案:

答案 0 :(得分:4)

这就是Java的做法,而Scala就是这样,因为它们都被编译为JVM字节码并以相同的方式运行。 (例如java -jar myjar.jar)

原因与Java相同:您可以在此处阅读有关它的讨论:https://softwareengineering.stackexchange.com/questions/211073/why-does-java-not-put-the-filename-in-args

简而言之,传递文件名的概念在Java / Scala中没有C / C ++那么有意义,无论如何你都可以轻松获得它。