Ich arbeite seit ungefähr zwei Jahren hauptsächlich an Scala, aber aus verschiedenen Gründen entwickle ich es zum ersten Mal seit einigen Jahren in Java, aber ich möchte die Funktionen zusammenfassen, die ich Scala verpasst habe.
Scala wird mit "Scala 2.12.x" und Java mit "Java 8" entwickelt. Dann wird es schnell kommen. (Da es sich um die Reihenfolge handelt, die ich mir ausgedacht habe, hat die Reihenfolge keine besondere Bedeutung.)
Als ich Scala schrieb, habe ich die Arten von Variablen und Methoden weggelassen, die nicht nach außen gerichtet sind, aber Java lässt dies niemals zu. Zuerst konnte ich den Rhythmus des Schreibens überhaupt nicht verstehen. In Java 10 kann es in bestimmten Regeln weggelassen werden (?). Ich kannte Java überhaupt nicht, weil die Zeit seit Java 7 stehen geblieben war.
Ich war sehr dankbar, dass ich zu Java zurückgekehrt bin. Java hat einen ternären Operator, aber in den Projekten, an denen ich gearbeitet habe, war dies generell gesetzlich verboten.
Ich habe es so mit Scala geschrieben
val mode = if (Bedingter Ausdruck) "xxx" else "yyy"
Da Java keinen Wert zurückgeben kann
String mode;
if (Bedingter Ausdruck) {
mode = "xxx";
} else {
mode = "yyy";
}
Ist es so In der Vergangenheit war mir das überhaupt egal, aber es war sehr unangenehm, die Kultur der Neuzuweisung zu verlassen.
Sie können verschiedene Dinge in Scala weglassen, aber die folgenden drei habe ich vergessen, am meisten zu schreiben, nachdem ich nach langer Zeit Java geschrieben habe.
;
In jeder Zeile
Die letzte Rückkehr der Methode
Eine Methode ohne Argumente und ohne Nebenwirkungen ()
Java kann beim Import nicht umbenannt werden. Es ist also eine Schande, wenn dieselbe Klasse in einem anderen Paket verwendet wird. Als ich dachte, dass der Klassenname etwas Unangenehmes sei, konnte ich den Namen nicht ändern, also dachte ich, es sei eine sorgfältige Maßnahme und beschloss, ihn zu lesen.
Das ist der eine. (Es heißt Interpolator)
val name = "James"
println(s"Hello, $name")
Ich bin nicht sicher, welche Art von Zeichenfolge generiert wird, nachdem Zeichenfolgen verkettet und mit Formatierer umbrochen wurden, oder ich verwende Format, aber ein Argument reicht nicht aus? Gibt es nicht viel? Ich hatte viele Probleme wie das Vergessen des Formats.
Es heißt Raw String Literal und ist eine Art Interpolator. Ich beschäftige mich wegen meiner Arbeit oft mit Json, aber ich kann es als Scala schreiben.
val json = """
{
"id": "12345",
"name": "James"
}
"""
Mit Java ...
String json = "{\n"
+ " \"id\": \"12345\",\n"
+ " \"name\": \"James\"\n"
+ "}";
Es ist schwer. .. .. Sie haben keine andere Wahl, als Json in den Editor zu schreiben und in Intellij einzufügen. (Es wurde gespeichert, weil es automatisch maskiert wurde, als ich es ohne Verwendung eingefügt habe.)
Es gab viele andere Dinge, aber ich habe es vergessen, weil es zu viel Kampf gegen Nebenwirkungen gab. Ich werde weiterhin mit Java arbeiten und denke, dass Scala so schreiben kann.
Recommended Posts