??Gibt an, ob der Wert des linken Operanden fehlt (dh es handelt sich um Java nulloder Sie haben dort eine undefinierte Variable), und gibt entsprechend zurück false(fehlt) oder true(fehlt nicht).
?has_contentist sehr ähnlich ??, außer dass es auch falsefür eine Zeichenfolge mit 0-Länge oder eine leere FTL-Sequenz (wie java.util.List, Java-Array usw.) oder einen leeren FTL-Hash (wie java.util.Mapusw.) zurückgegeben wird. (Es wird nicht falsefür a 0, boolean falseusw. zurückgegeben.)
!wird verwendet, um einen Standardwert anzugeben, wenn ein Wert fehlt (bedeutet wiederum, dass es sich um Java handelt nulloder Sie eine undefinierte Variable haben), wie z color!"no color". Wenn Sie die rechte Hand Operanden weglassen !, dann wird der Standardwert ist eine leere Zeichenfolge und leere Sequenz und leerer Hash auf die gleiche Zeit (ein Multi-typisierten Wert), die für das Schreiben Dinge praktisch ist , wie <#list things! as thing>, ${foo!}.
?if_existsist die alte Schreibweise ??. Benutze es nicht.
Beachten Sie, dass alle diese Operatoren nur den letzten Schritt eines Punkts oder []Ausdrucks abdecken , z. B. user.price!0nur Handles, wenn sie pricefehlen user, aber nicht, wenn sie userselbst fehlen. Um beide Möglichkeiten abzudecken, verwenden Sie (user.price)!0, die alle fehlenden variablen Fehler behandelt, die während der Auswertung der ausgelöst werden (), unabhängig davon, woher sie stammen.