Operatori operators
Esistono due tipi di operatori: operatori unari e operatori binari. Sono disponibili operatori unari di sinistra e operatori unari di destra.
// left-hand unary operators
// <operator> <operand>
// operand is an expression
not (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example@adobe.com")
// right-hand unary operators
// <operator> <operand>
// operand is an expression
@event{LobbyBeacon.endUserIDs._experience.emailid.id} is not null
// binary operators
// <operand1> <operator> <operand2>
// operand is an expression
(@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example1@adobe.com") or (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example2@adobe.com")
Note importanti important-notes
-
Quando si utilizza una moltiplicazione (
*), entrambi i campi dell’operazione devono avere lo stesso tipo, intero o decimale. Esempio:- l’esempio seguente è corretto:
3.0 * 4.0 3 * 4.0genererà un errore
- l’esempio seguente è corretto:
-
Quando si utilizza l’operatore
+, l’espressione deve essere racchiusa tra parentesi. Esempio:toDateTimeOnly(toDateTime((currentTimeInMillis()) + 1))è correttotoDateTimeOnly(toDateTime(currentTimeInMillis() + 1))genererà un errore
Logico logical
e
<expression1> and <expression2>
Sia <espressione1> che <espressione2> devono essere booleani. Il risultato è booleano.
Esempio:
3.14 > 2 and 3.15 < 1
oppure
<expression1> or <expression2>
Sia <espressione1> che <espressione2> devono essere booleani. Il risultato è booleano.
Esempio:
3.14 > 2 or 3.15 < 1
non
not <expression>
<espressione> deve essere booleano. Il risultato è booleano.
Esempio:
not 3.15 < 1
Confronto comparison
è nullo
<expression> is null
Il risultato è booleano.
Nullo significa che l’espressione non ha un valore valutato.
Esempio:
@event{BarBeacon.location} is null
non è nullo
<expression> is not null
Il risultato è booleano.
Nullo significa che l’espressione non ha un valore valutato.
Esempio:
@event{BarBeacon.location} is not null
ha valore null
<expression> has null
<espressione> deve essere un elenco. Il risultato è booleano.
Utile per identificare che un elenco contiene almeno un valore null.
Esempio:
["foo", "bar", null] has null
Restituisce true
["foo", "bar", ""] has null
Restituisce false perché “” non è considerato nullo.
==
<expression1> == <expression2>
Esempio:
3.14 == 42
"foo" == "bar"
!=
<expression1> != <expression2>
Il risultato è booleano.
Esempio:
3.14 != 42
"foo" != "bar"
>
<expression1> > <expression2>
Datetime può essere confrontato con Datetime.
Datetimeonly può essere confrontato con Datetimeonly.
Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.
Qualsiasi altra combinazione è vietata.
Il risultato è booleano.
Esempio:
3.14 > 42
>=
<expression1> >= <expression2>
Datetime può essere confrontato con Datetime.
Datetimeonly può essere confrontato con Datetimeonly.
Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.
Qualsiasi altra combinazione è vietata.
Il risultato è booleano.
Esempio:
42 >= 3.14
<
<expression1> < <expression2>
Datetime può essere confrontato con Datetime.
Datetimeonly può essere confrontato con Datetimeonly.
Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.
Qualsiasi altra combinazione è vietata.
Il risultato è booleano.
Esempio:
42 < 3.14
<=
<expression1> <= <expression2>
Datetime può essere confrontato con Datetime.
Datetimeonly può essere confrontato con Datetimeonly.
Sia il numero intero che il numero decimale possono essere confrontati con il numero intero o il numero decimale.
Qualsiasi altra combinazione è vietata.
Il risultato è booleano.
Esempio:
42 <= 3.14
Aritmetica arithmetic
+
<expression1> + <expression2>
Entrambe le espressioni devono essere numeriche (numero intero o decimale).
Il risultato è anche numerico.
Esempio:
1 + 2
Restituisce 3
-
<expression1> - <expression2>
Entrambe le espressioni devono essere numeriche (numero intero o decimale).
Il risultato è anche numerico.
Esempio:
2 - 1
Restituisce 1
/
<expression1> / <expression2>
Entrambe le espressioni devono essere numeriche (numero intero o decimale).
Il risultato è anche numerico.
<espressione2> non deve essere uguale a 0 (restituisce 0).
Esempio:
4 / 2
Restituisce 2
*
<expression1> * <expression2>
Entrambe le espressioni devono essere numeriche (numero intero o decimale).
Il risultato è anche numerico.
Esempio:
3 * 4
Restituisce 12
%
<expression1> % <expression2>
Entrambe le espressioni devono essere numeriche (numero intero o decimale).
Il risultato è anche numerico.
Esempio:
3 % 2
Restituisce 1.
Matematica math
è numerico
<expression> is numeric
Il tipo dell’espressione è numero intero o decimale.
Esempio:
@ is numeric
è un numero intero
<expression> is integer
Il tipo dell’espressione è un numero intero.
Esempio:
@ is integer
è decimale
<expression> is decimal
Il tipo dell’espressione è decimal.
Esempio:
@ is decimal
Stringa string
+
<string> + <expression>
<expression> + <string>
Concatena due espressioni.
Un’espressione deve essere una stringa concatenata.
Esempio:
"the current time is " + (now())
Restituisce “l’ora corrente è 2023-09-23T09:30:06.693Z”
(now()) + " is the current time"
Restituisce “2023-09-23T09:30:06.693Z è l’ora corrente”
"a" + "b" + "c" + 1234
Restituisce “abc1234”.
Data date
+
<expression> + <duration>
Aggiungere una durata a un valore dateTime, dateTimeOnly o duration.
Esempio:
(toDateTime("2023-12-03T15:15:30Z")) + (toDuration("PT15M"))
Restituisce un valore dateTime 2023-12-03T15:30:30Z
(toDateTimeOnly("2023-12-03T15:15:30")) + (toDuration("PT15M"))
Restituisce un valore dateTimeOnly 2023-12-03T15:30:30
(now()) + (toDuration("PT1H"))
Restituisce un valore dateTime (con fuso orario UTC) un’ora dopo rispetto all’ora corrente
(toDuration("PT1H")) + (toDuration("PT1H"))
Restituisce un valore duration PT2H
Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.
Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.
- TL;DR: Questa pagina è un riferimento completo degli operatori disponibili nell’editor di espressioni avanzate del Percorso, che include analisi logiche (
and,or,not), confronti (==,!=,>,>=,<,<=,is null,is not null,has null), aritmetiche (+,-,/,*,%), controllo del tipo di corrispondenza (is numeric,is integer,is decimal), concatenazione di stringhe e operatori aritmetici di data.
Intenti:
- Combinare condizioni booleane utilizzando gli operatori logici
and,orenot - Verificare se il valore di un campo o di un’espressione è null o non null utilizzando
is null/is not null - Rilevare valori Null in un elenco utilizzando l’operatore
has null - Confronta valori numerici, datetime e datetimeonly utilizzando
>,>=,<,<=,==e!= - Eseguire l’aritmetica sui valori numerici utilizzando
+,-,/,*e% - Aggiungere una durata a un valore dateTime, dateTimeOnly o duration utilizzando l’operatore
+
Glossario:
- Operatore unario: operatore applicato a un singolo operando; può essere mano sinistra (esempio:
not) o mano destra (esempio:is null) (specifico per prodotto) - Operatore binario: operatore applicato tra due operandi (ad esempio
and,==,+) (specifico per prodotto) - ha null: operatore unario destro che restituisce true se un elenco contiene almeno un elemento null (specifico per prodotto)
- è numerico / è intero / è decimale: operatori di verifica dei tipi che restituiscono un valore booleano basato sul sottotipo numerico dell’espressione (specifico per prodotto)
Guardrail:
- Quando si utilizza la moltiplicazione (
*), entrambi gli operandi devono essere dello stesso tipo numerico (intero o entrambi i decimali). La combinazione dei tipi causa un errore - Quando si utilizza l’operatore
+per l’aritmetica delle date, l’espressione deve essere racchiusa tra parentesi per evitare errori di analisi - Gli operatori di confronto (
>,>=,<,<=) sono validi solo tra tipi compatibili: Datetime con Datetime, DatetimeOnly con DatetimeOnly o numeric con numeric. Qualsiasi altra combinazione non è consentita - Una stringa vuota
""non è considerata nulla —has nullrestituisce false per un elenco contenente"" - Gli operatori
==e!=non eseguono alcun controllo del tipo di dati tra operandi
Terminologia:
- Nome canonico: Operators — Acronym: none — variants: expression operators, percorsi operators
- Sinonimi:
and= “AND logico”;or= “OR logico”;not= “NOT logico”;%= “modulo” - Non confondere:
is null(l’espressione non ha un valore valutato) ≠== null(sintassi non valida);has null(l’elenco contiene null) ≠is null(l’espressione stessa è null)
Domande frequenti:
- Q: è possibile moltiplicare direttamente un numero intero per un numero decimale? — No; entrambi gli operandi di
*devono essere dello stesso tipo. Utilizzare3.0 * 4.0(entrambi decimali) o3 * 4(entrambi interi). - Q: come si aggiungono 15 minuti a un dateTime? — Utilizza
(toDateTime("...")) + (toDuration("PT15M")). - Q: Qual è la differenza tra
is nullehas null? —is nullcontrolla se una singola espressione non ha un valore valutato;has nullcontrolla se un elenco contiene almeno un elemento null. - Q:
"" has nullrestituisce true? — No; una stringa vuota non è considerata nulla, pertanto il risultato è falso. - Q: perché
3 * 4.0causa un errore? — L’operatore*richiede che entrambi gli operandi siano dello stesso tipo numerico. La combinazione di numeri interi e decimali non è consentita.