2016-12-24 4 views
0

Bitte haben Sie Verständnis, dass ich keinen Java-Hintergrund habe und dies ist meine erste Stunde mit Scala. Ich bin nicht Bashing Scala - nur neugierig auf die Design-Entscheidungen.Scala args (0) Grund

Gab es einen Grund, warum Scala entschieden hat, Konvention in Bezug auf seine args Objekt zur Schau zu stellen?

Im Vergleich zu den mir bekannten Sprachen hätte ich erwartet, dass die Scala args (0) den Namen der ausführbaren Datei zurückgibt und args (1) das erste Argument zurückgibt.

Anstatt die obige "unausgesprochene" Konvention zu verwenden, benötigt Scala den Coder, um Java-Code zu mischen, nur um den Namen der ausführbaren Datei zu erhalten (re. getting script filename and printing it).

+0

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

+0

Vielen Dank für Ihre Grammatik Lektion.Wie Ihre Referenz angibt, ist es a gemeinsamer Fehler ... – Steve

+0

So häufig, dass es vielleicht nur Verwendung wird. (Das heißt, Ungehorsam oder Missachtung ist das echte gemeinsame Element.) –

Antwort

3

So macht Java es und Scala folgt einfach, da beide nach JVM-Bytecode kompiliert und auf die gleiche Weise ausgeführt werden. (ZB java -jar myjar.jar)

So ist der Grund die gleiche wie Java ist: Sie haben eine Diskussion darüber hier lesen können. https://softwareengineering.stackexchange.com/questions/211073/why-does-java-not-put-the-filename-in-args

Kurz gesagt, das Konzept der Dateiname der Weitergabe ist weniger aussagekräftig in Java/Scala als in C/C++ und Sie können es leicht bekommen, wenn Sie es brauchen

+0

Lassen Sie uns auch nicht vergessen, dass Java und Scala kann auf Plattformen laufen, die noch nicht einmal Dateien und damit ein Konzept von "filename" haben. –

Verwandte Themen