Hinweis: Wir können die Richtigkeit des Inhalts nicht garantieren. Bitte beachten Sie, dass dies mit der Absicht geschrieben wurde, die psychische Angst von MVEL-Anfängern zu lindern, die sich aufgrund fehlender Informationen auf Japanisch einsam fühlen.
Einfach ausgedrückt ist Java eine Skriptsprache. Es ist kein JavaScript, es ist Script Java. Ich habe es gewagt, es zu sagen, weil es wichtig ist.
Ich denke, es ist eine ziemlich kleine Sprache, aber es ist tatsächlich Open Source. Derzeit werden anscheinend regelmäßig Probleme angesprochen und auch Wartungsarbeiten durchgeführt.
greet = "Hello "; //Zeichenfolgentyp
name = "MVEL"; //Zeichenfolgentyp
return greet + name; //Ergebnis:"Hello MVEL"
--Der Zeilenbegrenzer ist ein Semikolon (;) --Dynamischer Typ, variabler Datentyp muss nicht deklariert werden
MVEL hat die Eigenschaft, den zuletzt ausgewerteten Wert als Rückgabewert zurückzugeben. Die Rückgabe kann also weggelassen werden, aber ich denke, es ist freundlicher, sie zur besseren Lesbarkeit hinzuzufügen.
Die meisten der folgenden allgemeinen Operatoren können verwendet werden.
--Vergleichsoperatoren (==,! =,>,> =, <, <=) --Arithmetische Operatoren (+, -, \ *, /,%, + =, - =, * =, / =,% =) -Logischer Operator (&&、||)
Andere enthalten enthält, ist Instanz von, ~ =.
//Stellen Sie fest, ob die Zeichenfolge "n" enthält.
"Hallo" contains "Hmm" //Ergebnis: wahr
//Beurteilung, ob es sich um einen numerischen Wert handelt
value = "100" //Zeichenfolgentyp
value is instanceof Integer //Ergebnis: falsch
//Beurteilung, ob es sich um alphanumerische Zeichen halber Breite handelt
"Hello" ~= '^[A-Za-z0-9]+$' //Ergebnis: wahr
Operator | Erläuterung |
---|---|
contains | True, wenn der Wert auf der linken Seite den Wert auf der rechten Seite enthält |
is instanceof | True, wenn der Datentyp der Variablen auf der linken Seite der Datentyp auf der rechten Seite ist |
˜= | True, wenn der Wert auf der linken Seite mit dem regulären Ausdruck auf der rechten Seite übereinstimmt |
hoge == null;
hoge == nil; //Synonym für null
In MVEL werden null und nil als leere Werte behandelt. Sie können beide verwenden, aber es ist möglicherweise sicherer, null für Java zu verwenden.
//Nutzungsgebühr je nach Alter ändern
if (age >= 60) {
System.out.println("Senior Diskontsatz: 1,200 Yen");
}
else if (age >= 20) {
System.out.println("Allgemeine Gebühr: 1,800 Yen");
}
else {
System.out.println("Studentenrabattgebühr: 1,000 Yen");
}
Wenn der bedingte Ausdruck wahr ist, wird die Verarbeitung in {} ausgeführt. Wenn Sie mehrere Bedingungen festlegen möchten, verbinden Sie sie mit else if ().
Obwohl es sich um ein kleines Detail handelt, wird die else-Anweisung in der nächstniedrigeren Zeile mit einem Zeilenumbruch entsprechend der Schreibweise des offiziellen Dokuments geschrieben.
age >= 15 ? "Yes" : "No";
Auf diese Weise ist auch eine bedingte Verzweigung mit dem ternären Operator möglich.
Für die iterative Verarbeitung können Sie zusätzlich zur grundlegenden Schleifensyntax (für, während, bis, während, bis) do foreach verwenden, ähnlich der in Java 1.5 hinzugefügten erweiterten for-Anweisung.
//FizzBuzz Problem
for (i = 0; i < 100; i++) {
if (i % 15 == 0) {
System.out.println("FizzBuzz");
}
else if (i % 3 == 0) {
System.out.println("Fizz");
}
else if (i % 5 == 0) {
System.out.println("Buzz");
}
}
Inkrement kann wie i ++ problemlos verwendet werden.
//Extrahieren Sie Elemente von Listenfrüchten nacheinander und geben Sie sie an die Konsole aus
fruits = ["Apfel", "Traube", "Ananas"];
count = 0;
foreach (item : fruits) {
count++;
System.out.println(count + ". " + item);
}
Wenn Sie den Index mit foreach anzeigen möchten, müssen Sie die Variable anscheinend selbst für den Index vorbereiten.
//Geben Sie eine Zeichenfolge an die Konsole aus (wenn das Ausgabeziel die Standardeinstellung ist).
def hello() {
System.out.println("Hello, world"); //Ergebnis: Hallo, world
}
//Berechnen Sie die Fläche des Dreiecks und geben Sie die Nachricht zurück
function calcTriangleArea(bottom, height) {
area = bottom * height / 2; //Int-Typ
message = "Der Boden ist" + bottom + "Die Höhe beträgt cm" + height + "Die Fläche des ㎝-Dreiecks beträgt" + area + "Es ist ㎠."; //Zeichenfolgentyp (Variable ist automatisch Int-Typ=>In String-Typ konvertieren)
return message;
}
Sie können def und function für die Funktionsdefinition von MVEL verwenden. Es gibt keinen Unterschied zwischen den beiden, aber da def in der offiziellen Dokumentation verwendet wird, sollten wir es zu def vereinheitlichen.
Nebenbei bemerkt, als ich die MVEL-Quelle zum ersten Mal sah, habe ich sie als Ruby missverstanden.
Verwenden Sie Java-Bibliotheken, um Datumsangaben in MVEL zu verarbeiten. Es gibt Datum und Kalender in der Datumsbibliothek, aber dieses Mal verwenden wir Kalender, weil wir die arithmetische Verarbeitung von Datum und Uhrzeit durchführen möchten.
import java.util.Calendar; //Kalenderklasse importieren
//Erstellen Sie eine Kalenderinstanz
Calendar calendar = Calendar.getInstance();
today = calendar.getTime(); //Holen Sie sich das aktuelle Datum und die Uhrzeit
calendar.set(2020, 4, 23, 23, 59, 59); //Verkaufsenddatum festlegen (23. April 2020, 23:59:59 Uhr)
endOfSaleDay = calendar.getTime();
if (today >= endOfSaleDay) {
System.out.println("20%Der AUS-Verkauf ist beendet.");
}
Mit dem oben genannten Verfahren wird festgestellt, ob der Rabattverkauf beendet wurde. Da die Einstellung des Verkaufsenddatums eine destruktive Änderung darstellt, wird bei getTime () das aktuelle Datum und die aktuelle Uhrzeit zum festgelegten Datum und zur festgelegten Uhrzeit angezeigt.
Was ist MVELer überhaupt? Deshalb möchte ich es als die Verantwortung der Erklärung definieren. Das heißt, es fühlt sich an wie PHPer für PHP-Benutzer und Rubyist für Ruby-Benutzer, aber genau genommen bezieht es sich auf MVEL-Benutzer, die die folgenden Bedingungen erfüllen.
Wenn Sie ein MVEL-Benutzer sind, der diese Anforderungen erfüllen kann, seien Sie bereit, ein ** MVELer ** zu sein, und seien Sie stolz darauf, sich selbst als MVELer zu bezeichnen.
Recommended Posts