El Lenguaje de Expresión Común (CEL) es un lenguaje de expresión sencillo diseñado por Google. El CEL se utiliza para escribir fórmulas rápidas, portátiles y seguras. Esta guía te muestra todas las funciones que puedes utilizar al escribir fórmulas para que puedas crear expresiones potentes.
Información relevante
Para obtener más información, consulta los recursos oficiales:
Operaciones básicas (Operadores)
La siguiente tabla muestra los símbolos básicos que puedes utilizar en tus fórmulas.
Símbolo |
Descripción |
Ejemplo |
|---|---|---|
/ |
Divide números |
10 / 2 es igual a 5
|
== |
Comprueba si dos valores son iguales | edad == 18 |
<= |
Comprueba si es menor o igual | edad <= 65 |
- |
Resta números |
100 - 20 es igual a 80
|
< |
Comprueba si es menor que | edad < 18 |
% |
Obtiene el resto tras la división |
10 % 3 es igual a 1
|
[index] |
Obtiene un elemento de una lista o mapa |
lista[0] obtiene el primer elemento |
>= |
Comprueba si es mayor o igual | edad >= 18 |
? : |
Si-entonces-sino | edad >= 18 ? "adulto" : "menor" |
!= |
Comprueba si no es igual | estado != "pendiente" |
- (unario) |
Hace que el número sea negativo | -5 |
+ |
Suma números o une texto | 5 + 3 u "Hola" + "Mundo" |
! |
Lo contrario de verdadero/falso |
!verdadero es igual a falso
|
* |
Multiplica números |
5 * 3 es igual a 15
|
> |
Comprueba si es mayor que | edad > 18 |
\|\| |
O: verdadero si alguno de los dos lados es verdadero | edad < 13 \|\| edad > 65 |
&& |
Y: verdadero solo si ambos lados son verdaderos | edad >= 18 && optIn == verdadero |
➡️ Para obtener más información, consulta Operadores de CEL.
Funciones disponibles
Conversión entre tipos
Las siguientes funciones te permiten cambiar datos de un tipo a otro.
➡️ Para obtener más información, consulta Conversiones de tipos de CEL.
bool() Convertir a verdadero/falso
Cambia texto u otros valores a verdadero/falso.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
bool(valor) |
Valor verdadero/falso | verdadero o falso | Cuando ya tienes verdadero/falso |
bool(texto) |
Texto como "verdadero" o "falso" | verdadero o falso | Al convertir texto a verdadero/falso |
Por ejemplo:
bool(verdadero) // da como resultado: verdadero
bool("verdadero") // da como resultado: verdadero (convierte texto a verdadero/falso)
bool("falso") // da como resultado: falso
bytes() Convertir a datos binarios
Convierte los datos a bytes (formato binario sin procesar). La mayoría de los usuarios no necesitarán esto.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
bytes(valor) |
Datos binarios | Datos binarios | Cuando ya tienes bytes |
bytes(texto) |
Texto | Datos binarios | Al convertir texto a binario |
Por ejemplo:
bytes(b'hola') // da como resultado: b'hola'
bytes("hola") // da como resultado: b'hola' (convierte texto a binario)
double() Convertir a número decimal
Cambia los valores a números decimales (números con un punto, como 3.14).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
double(número) |
Número decimal | Número decimal | Cuando ya tienes un decimal |
double(número_entero) |
Número entero | Número decimal | Convierte 42 a 42.0 |
double(texto) |
Texto como "3.14" | Número decimal | Convierte el texto a decimal |
Por ejemplo:
double(3.14) // da como resultado: 3.14
double(42) // da como resultado: 42.0 (añade un punto decimal)
double("3.14") // da como resultado: 3.14 (convierte el texto a número)
double(100) // da como resultado: 100.0
int() Convertir a número entero
Cambia los valores a números enteros (sin decimales).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
int(número) |
Número entero | Número entero | Cuando ya tienes un número entero |
int(decimal) |
Número decimal | Número entero | Elimina la parte decimal (3.8 se convierte en 3) |
int(duración) |
Periodo | Número de segundos | Convierte "1h" en 3600 |
int(texto) |
Texto como "123" | Número entero | Convierte texto en número |
int(sello_temporal) |
Fecha/hora | Número | Convierte a sello temporal Unix |
Por ejemplo:
int(42) // da como resultado: 42
int(3.14) // da como resultado: 3 (elimina .14)
int(duración("1h")) // da como resultado: 3600 (segundos en 1 hora)
int("123") // da como resultado: 123 (convierte texto)
int(sello_temporal("2024-01-01T00:00:00Z")) // da como resultado: 1704067200
string() Convertir a texto
Cambia cualquier valor a texto.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
string(texto) |
Texto | Texto | Cuando ya tienes texto |
string(verdadero_o_falso) |
verdadero o falso | "verdadero" o "falso" | Convierte verdadero/falso en texto |
string(binario) |
Datos binarios | Texto | Convierte binario en texto legible |
string(decimal) |
Número decimal | Texto | Convierte 3.14 en "3.14" |
string(duración) |
Periodo | Texto | Convierte la duración en texto como "3600s" |
string(número) |
Número entero | Texto | Convierte 123 en "123" |
string(sello_temporal) |
Fecha/hora | Texto | Convierte a una cadena de fecha legible |
Por ejemplo:
string("hola") // da como resultado: "hola"
string(verdadero) // da como resultado: "verdadero"
string(3.14) // da como resultado: "3.14"
string(123) // da como resultado: "123"
string(sello_temporal("2024-01-01T00:00:00Z")) // da como resultado: "2024-01-01T00:00:00Z"
type() Averiguar de qué tipo es algo
Te indica qué tipo de datos tienes (texto, número, verdadero/falso, etc.).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
type(cualquier_cosa) |
Cualquier valor | El nombre del tipo | Para comprobar qué tipo de datos tienes |
Por ejemplo:
type(42) // da como resultado: int (tipo de número entero)
type("hola") // da como resultado: string (tipo de texto)
type(3.14) // da como resultado: double (tipo de número decimal)
type(verdadero) // da como resultado: bool (tipo verdadero/falso)Trabajar con fechas y horas
Las siguientes funciones te permiten trabajar con fechas, horas y sellos temporales.
➡️ Para obtener más información, consulta Sellos temporales de CEL.
timestamp() Crear o convertir una fecha/hora
Crea un valor de fecha y hora a partir de diferentes fuentes.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
timestamp(existente) |
Sello temporal existente | Mismo sello temporal | Cuando ya tienes un sello temporal |
timestamp(número) |
Número (segundos Unix) | Fecha/hora | Convierte 1704067200 en una fecha |
timestamp(texto) |
Texto como "2024-01-01T00:00:00Z" | Fecha/hora | Convierte el texto en fecha/hora |
Por ejemplo:
timestamp("2024-01-01T00:00:00Z") // da como resultado: 1 de enero de 2024 a medianoche
timestamp(1704067200) // da como resultado: 2024-01-01T00:00:00Z
getFullYear() Obtener el año
Obtiene el año de una fecha (por ejemplo, 2024).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
date.getFullYear() |
Nada (utilizar en una fecha) | Número de año | Obtener el año en hora UTC |
date.getFullYear(zona_horaria) |
Nombre de la zona horaria | Número de año | Obtener el año en una zona horaria específica |
Por ejemplo:
timestamp("2024-01-15T10:30:00Z").getFullYear() // da como resultado: 2024
timestamp("2024-01-01T02:00:00Z").getFullYear("América/Nueva_York") // da como resultado: 2023 (noche del 31 de diciembre)
createdAt.getFullYear() // obtiene el año de createdAt
getMonth() Obtener el mes
Obtiene el mes a partir de una fecha.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
date.getMonth() |
Nada (utilizar en una fecha) | Mes (0-11) | Obtener el mes en hora UTC |
date.getMonth(zona_horaria) |
Nombre de la zona horaria | Mes (0-11) | Obtener el mes en una zona horaria específica |
Por ejemplo:
timestamp("2024-03-15T10:30:00Z").getMonth() // da como resultado: 2 (marzo es el tercer mes)
timestamp("2024-03-01T02:00:00Z").getMonth("América/Nueva_York") // da como resultado: 1 (febrero)
createdAt.getMonth() // obtiene el mes de createdAt
// Recuerda: enero=0, febrero=1, marzo=2, abril=3, mayo=4, junio=5,
// julio=6, agosto=7, septiembre=8, octubre=9, noviembre=10, diciembre=11
getDate() Obtener el día del mes
Obtiene el día del mes (1-31).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
data.getDate() |
Nada (utilizar en una fecha) | Día (1-31) | Obtener el día en hora UTC |
date.getDate(zona_horaria) |
Nombre de la zona horaria | Día (1-31) | Obtener el día en una zona horaria específica |
Por ejemplo:
timestamp("2024-03-15T10:30:00Z").getDate() // da como resultado: 15 (el día 15)
timestamp("2024-03-01T02:00:00Z").getDate("América/Nueva_York") // da como resultado: 28 (28 de febrero)
createdAt.getDate() // obtiene el día de createdAt
getDayOfWeek() Obtener el día de la semana
Obtiene el día de la semana.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
date.getDayOfWeek() |
Nada (utilizar en una fecha) | Día (0-6) | Obtener el día de la semana en hora UTC |
date.getDayOfWeek(zona_horaria) |
Nombre de la zona horaria | Día (0-6) | Obtener el día de la semana en una zona horaria específica |
Por ejemplo:
timestamp("2024-03-15T10:30:00Z").getDayOfWeek() // da como resultado: 5 (viernes)
timestamp("2024-03-17T02:00:00Z").getDayOfWeek("América/Nueva_York") // da como resultado: 6 (sábado)
// Recuerda: domingo=0, lunes=1, martes=2, miércoles=3,
// jueves=4, viernes=5, sábado=6
getHours() Obtener la hora
Obtiene la hora a partir de una hora (0-23, donde 0 es medianoche y 23 son las 11:00 p.m).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
time.getHours() |
Nada (utilizar en una fecha/hora) | Hora (0-23) | Obtener la hora en formato UTC |
time.getHours(zona_horaria) |
Nombre de la zona horaria | Hora (0-23) | Obtener la hora en una zona horaria específica |
period.getHours() |
Nada (utilizar en una duración) | Total de horas | Contar las horas en un periodo de tiempo |
Por ejemplo:
timestamp("2024-03-15T14:30:00Z").getHours() // da como resultado: 14 (02:30 p.m)
timestamp("2024-03-15T14:30:00Z").getHours("América/Nueva_York") // da como resultado: 10 (10:30 a.m EST)
duration("2h30m").getHours() // da como resultado: 2 horas
getMinutes() Obtener los minutos
Obtiene los minutos de una hora (0-59).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
time.getMinutes() |
Nada (utilizar en una fecha/hora) | Minutos (0-59) | Obtener minutos de la hora |
time.getMinutes(zona_horaria) |
Nombre de la zona horaria | Minutos (0-59) | Obtener minutos en una zona horaria específica |
period.getMinutes() |
Nada (utilizar en una duración) | Total de minutos | Contar los minutos totales en un periodo |
Por ejemplo:
timestamp("2024-03-15T14:45:00Z").getMinutes() // da como resultado: 45 minutes
timestamp("2024-03-15T14:45:00Z").getMinutes("América/Nueva_York") // da como resultado: 45 minutes
duration("2h30m").getMinutes() // da como resultado: 150 (total de minutos)
getSeconds() Obtener los segundos
Obtiene los segundos de una hora (0-59).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
time.getSeconds() |
Nada (utilizar en una fecha/hora) | Segundos (0-59) | Obtener los segundos de una hora |
time.getSeconds(zona_horaria) |
Nombre de la zona horaria | Segundos (0-59) | Obtener los segundos en una zona horaria específica |
period.getSeconds() |
Nada (utilizar en una duración) | Total de segundos | Cuenta el total de segundos en un periodo |
Por ejemplo:
timestamp("2024-03-15T14:45:30Z").getSeconds() // da como resultado: 30 seconds
timestamp("2024-03-15T14:45:30Z").getSeconds("América/Nueva_York") // da como resultado: 30 seconds
duration("2h30m45s").getSeconds() // da como resultado: 9045 (total de segundos)Trabajar con periodos de tiempo
Las siguientes funciones te permiten crear y trabajar con duraciones (periodos de tiempo).
➡️ Para obtener más información, consulta Duraciones de CEL.
duration() Crear un periodo de tiempo
Crea una duración que representa un periodo de tiempo (no una fecha específica).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
duration(existente) |
Duración existente | Misma duración | Cuando ya tienes una duración |
duration(segundos) |
Número de segundos | Periodo | Crea una duración a partir de segundos |
duration(texto) |
Texto como "1h30m" o "90s" | Periodo | Crea la duración a partir del texto |
Por ejemplo:
duration(3600) // da como resultado: 1 hora (3600 segundos)
duration("1h30m") // da como resultado: 1 hora y 30 minutos
duration("90s") // da como resultado: 90 segundos
duration("2h") // da como resultado: 2 horasFormato del periodo de tiempo: puedes utilizar h para horas, m para minutos y s para segundos. Combínalos como "1h30m15s".
Funciones de texto
Las siguientes funciones te permiten trabajar con texto (cadenas).
➡️ Para obtener más información, consulta Funciones de cadena de CEL.
contains() Comprobar si el texto contiene algo
Comprueba si un fragmento de texto está dentro de otro fragmento de texto.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
text.contains(búsqueda) |
Texto a buscar | verdadero o falso | Comprobar si el texto contiene algo |
Por ejemplo:
"hola mundo".contains("mundo") // da como resultado: verdadero (encontrado)
"hola mundo".contains("xyz") // da como resultado: falso (no encontrado)
estado.contains("activo") // comprueba si el estado contiene "activo"
contacto.email.contains("@") // comprueba si el email tiene el símbolo @
startsWith() Comprobar si el texto comienza con algo
Comprueba si el texto comienza con caracteres específicos.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
text.startsWith(prefijo) |
Texto que se debe consultar al principio | verdadero o falso | Comprobar cómo comienza el texto |
Por ejemplo:
"hola mundo".startsWith("hola") // da como resultado: verdadero
"hola mundo".startsWith("mundo") // da como resultado: falso (comienza con "hola" y no con "mundo")
contacto.email.startsWith("admin") // comprueba si el email comienza con "admin"
estado.startsWith("pendiente") // comprueba si el estado comienza con "pendiente"
endsWith() Comprobar si el texto termina con algo
Comprueba si el texto termina con caracteres específicos.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
text.endsWith(sufijo) |
Texto que se debe comprobar al final | verdadero o falso | Comprobar cómo termina el texto |
Por ejemplo:
"hola mundo".endsWith("mundo") // da como resultado: verdadero
"hola mundo".endsWith("hola") // da como resultado: falso (termina con "mundo" y no con "hola")
contacto.email.endsWith("@ejemplo.com") // comprueba si el dominio de email es @ejemplo.com
estado.endsWith("_aprobado") // comprueba si el estado termina con "_aprobado"
matches() Comprobar si el texto coincide con un patrón
Comprueba si el texto coincide con un patrón (utiliza expresiones regulares o funcionalidad avanzada).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
matches(texto, patrón) |
Texto y patrón | verdadero o falso | Comprobar el texto con un patrón |
text.matches(patrón) |
Patrón a comprobar | verdadero o falso | Comprobar si el texto coincide con el patrón |
Por ejemplo:
// Comprobar si el texto parece un email
"prueba@ejemplo.com".matches("^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$") // da como resultado: verdadero
"no-un-email".matches("^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$") // da como resultado: falso
// Validar el formato del email
contacto.email.matches("^[a-z]+@[a-z]+\\.[a-z]+$") // comprueba el formato del email
trim() Eliminar caracteres de ambos extremos
Elimina caracteres específicos del principio y del final del texto (como eliminar espacios).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
trim(texto, caracteres) |
Texto y qué eliminar | Texto limpio | Eliminar caracteres de ambos extremos |
Por ejemplo:
trim(" hola ", " ") // da como resultado: "hola" (se eliminan los espacios)
trim("###test###", "#") // da como resultado: "test" (se eliminan los símbolos #)
trim("___name___", "_") // da como resultado: "name" (se eliminan los guiones bajos)
trim("000123000", "0") // da como resultado: "123" (se eliminan los ceros)
ltrim() Eliminar caracteres de la izquierda (inicio)
Elimina caracteres específicos solo del principio del texto.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
ltrim(texto, caracteres) |
Texto y qué eliminar | Texto limpio | Eliminar caracteres solo del principio |
Por ejemplo:
ltrim(" hola ", " ") // da como resultado: "hola " (se eliminan los espacios de la izquierda)
ltrim("###test###", "#") // da como resultado: "test###" (se eliminan los # de la izquierda)
ltrim("000123", "0") // da como resultado: "123" (se eliminan los ceros de la izquierda)
rtrim() Eliminar caracteres de la derecha (final)
Elimina caracteres específicos solo del final del texto.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
rtrim(texto, caracteres) |
Texto y qué eliminar | Texto limpio | Eliminar caracteres solo del final |
Por ejemplo:
rtrim(" hola ", " ") // da como resultado: " hola" (se eliminan los espacios de la derecha)
rtrim("###test###", "#") // da como resultado: "###test" (se eliminan los # de la derecha)
rtrim("123000", "0") // da como resultado: "123" (se eliminan los ceros de la derecha)Funciones matemáticas
Las siguientes funciones sirven para realizar cálculos matemáticos.
➡️ Para obtener más información, consulta Funciones numéricas de CEL.
abs() Obtener el valor absoluto
Elimina el signo negativo de un número (lo convierte en positivo).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
abs(número) |
Cualquier número entero | Número positivo | Eliminar el signo negativo |
Por ejemplo:
abs(-5) // da como resultado: 5
abs(10) // da como resultado: 10 (ya es positivo)
abs(-100) // da como resultado: 100
abs(0) // da como resultado: 0
round() Redondear al número entero más cercano
Redondea un número decimal al número entero más cercano.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
round(decimal) |
Número decimal | Número entero | Redondear al número más cercano |
Por ejemplo:
round(3.7) // da como resultado: 4 (redondea hacia arriba)
round(3.2) // da como resultado: 3 (redondea hacia abajo)
round(3.5) // da como resultado: 4 (redondea hacia arriba al estar exactamente a mitad de camino)
round(-2.5) // da como resultado: -2
round(cantidad) // redondea la variable cantidad
roundUp() Siempre redondear hacia arriba
Siempre redondea hacia arriba al número entero siguiente (techo).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
roundUp(decimal) |
Número decimal | Número entero | Siempre redondear hacia arriba |
Por ejemplo:
roundUp(3.2) // da como resultado: 4 (redondea hacia arriba aunque esté cerca de 3)
roundUp(3.9) // da como resultado: 4
roundUp(3.0) // da como resultado: 3 (ya es un número entero)
roundUp(-2.5) // da como resultado: -2
roundDown() Siempre redondear hacia abajo
Siempre redondea hacia abajo al número entero anterior (suelo).
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
roundDown(decimal) |
Número decimal | Número entero | Siempre redondear hacia abajo |
Por ejemplo:
roundDown(3.8) // da como resultado: 3 (redondea hacia abajo aunque esté cerca de 4)
roundDown(3.2) // da como resultado: 3
roundDown(3.0) // da como resultado: 3 (ya es un número entero)
roundDown(-2.5) // da como resultado: -3
min() Encontrar el número más pequeño
Devuelve el más pequeño de dos números.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
min(número 1, número 2) |
Dos números | El más pequeño | Encontrar qué número es más pequeño |
Por ejemplo:
min(5, 10) // da como resultado: 5 (el número más pequeño)
min(-3, 2) // da como resultado: -3 (los números negativos son más pequeños)
min(edad, 100) // da como resultado: el que sea más pequeño, age o 100
min(3.5, 5) // da como resultado: 3Caso de uso: min(edad, 65) garantiza que la edad no supere los 65 años.
max() Encuentra el número más grande
Devuelve el más grande de dos números.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
max(número 1, número 2) |
Dos números | El más grande | Encontrar qué número es más grande |
Por ejemplo:
max(5, 10) // da como resultado: 10 (el número más grande)
max(-3, 2) // da como resultado: 2
max(edad, 18) // da como resultado: el mayor de los dos, edad o 18
max(3.5, 5) // da como resultado: 5Caso de uso: max(edad, 18) garantiza que la edad sea al menos 18 años.
Funciones de lista y mapa
Las siguientes funciones te permiten trabajar con listas (colecciones ordenadas) y mapas (pares clave-valor).
➡️ Para obtener más información, consulta Listas de CEL y Mapas de CEL.
size() Contar elementos
Cuenta cuántos elementos hay en una lista, mapa o cuántos caracteres hay en un texto.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
size(colección) |
Lista, mapa o texto | Número de elementos | Contar elementos o caracteres |
collection.size() |
Nada (utilizar en lista/mapa/texto) | Número de elementos | Contar elementos o caracteres |
Por ejemplo:
size([1, 2, 3]) // da como resultado: 3 (tres elementos en la lista)
[1, 2, 3].size() // da como resultado: 3
socios.size() // da como resultado: cuántos socios tienes
size({"a": 1, "b": 2}) // da como resultado: 2 (dos pares clave-valor)
direcciones.size() // da como resultado: cuántas direcciones tienes
size("hello") // da como resultado: 5 (cinco letras)
"hello".size() // da como resultado: 5
contacto.email.size() > 5 // comprueba si el email tiene más de 5 caracteres
in() Comprobar si el elemento existe
Comprueba si un valor existe en una lista o si una clave existe en un mapa.
Función |
Entrada |
Resultado |
Cuándo utilizarlo |
|---|---|---|---|
valor en lista |
Valor y lista | verdadero o falso | Comprobar si el artículo está en una lista |
clave en mapa |
Clave y mapa | verdadero o falso | Comprobar si la clave existe en un mapa |
Por ejemplo:
5 in [1, 2, 3, 4, 5] // da como resultado: verdadero (5 está en la lista)
10 in [1, 2, 3] // da como resultado: falso (10 no está en la lista)
"activo" in ["activo", "pendiente", "completado"] // da como resultado: verdadero
"name" in {"name": "John", "age": 30} // da como resultado: verdadero (la clave "name" existe)
"email" in {"name": "John", "age": 30} // da como resultado: falso (no existe la clave "email")
"casa" in direcciones // comprueba si existe la dirección "casa"Nuestras recomendaciones para principiantes
Para obtener más información, consulta:
- Definición del lenguaje CEL: guía completa del lenguaje
- Tutorial introductorio a CEL: primeros pasos con CEL
- Prácticas recomendadas de CEL: consejos y patrones
Comprender los tipos de datos
Para obtener más información, consulta Sistema de tipos de CEL.
-
Texto (string): palabras y frases, siempre entre comillas:
"hola" -
Números (int): números enteros sin comillas:
42 -
Decimales (double): números con decimales:
3.14 -
Verdadero/Falso (bool): solo
verdaderoofalso, sin comillas -
Listas: varios elementos entre paréntesis, como
[1, 2, 3]o["a", "b", "c"] -
Mapas: pares clave-valor entre llaves
{"name": "John", "age": 30}
Utilizar funciones de miembro (notación de punto)
Algunas funciones se llaman utilizando un punto (.) después del valor:
"hola".contains("e") // Comprueba si "hola" contiene "e"
[1, 2, 3].size() // Cuenta los elementos de la lista
timestamp("2024-01-01T00:00:00Z").getFullYear() // Obtiene el año a partir de la fechaUtilizar funciones regulares
Otras funciones envuelven el valor:
int("123") // Convierte texto en número
round(3.7) // Redondea decimales a número enteros
min(5, 10) // Encuentra el número más pequeñoCombinar funciones
Puedes anidar funciones unas dentro de otras:
string(redondear(3.7)) // Primero redondea 3.7 a 4 y luego lo convierte a "4"
int(duración("1h")) // Convierte 1 hora en 3600 segundosZonas horarias
Algunas funciones de fecha aceptan una zona horaria (como "América/Nueva_York" o "Europa/París"):
createdAt.getHours() // Obtiene la hora en UTC (hora universal)
createdAt.getHours("América/Nueva_York") // Obtiene la hora de Nueva YorkRecuerda
- Los meses empiezan en 0: enero es 0, diciembre es 11
- Los días de la semana empiezan en 0: domingo es 0, sábado es 6
- Las horas utilizan el formato de 24 horas: 0 es medianoche, 13 es la 01:00 p.m, 23 son la 11:00 p.m
-
Utiliza comillas para el texto:
"hello"en lugar dehello -
No utilices comillas para los números:
42en lugar de"42"
⏭️ ¿Qué es lo siguiente?
🤔 ¿Tiene alguna duda?
Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de asistencia mediante la creación de un ticket desde su cuenta. Si todavía no tiene una cuenta, puede ponerse en contacto con nosotros aquí.
Si necesitas ayuda con un proyecto usando Brevo, podemos ponerte en contacto con la agencia partner de Brevo adecuada.