EdgeScript fournit des fonctions numériques intégrées pour les opérations arithmétiques, les comparaisons et les arrondis dans les règles de périphérie CDN.
Fonctions arithmétiques
add
Renvoie la somme de deux nombres. Par exemple, add(10, 20) renvoie 30.
Syntaxe
add(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Premier opérande. |
n2 |
Second opérande. |
Valeur de retour
Renvoie le résultat de n1 + n2.
Exemple
n1 = add(10, 20)
say(concat('n1=', n1))
Sortie : n1=30
sub
Renvoie la différence entre deux nombres. Par exemple, sub(10, 20) renvoie -10.
Syntaxe
sub(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Minuende (nombre duquel on soustrait). |
n2 |
Soustrahende (nombre à soustraire). |
Valeur de retour
Renvoie le résultat de n1 - n2.
Exemple
n2 = sub(10, 20)
say(concat('n2=', n2))
Sortie : n2=-10
mul
Renvoie le produit de deux nombres. Par exemple, mul(10, 20) renvoie 200.
Syntaxe
mul(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Multiplicande. |
n2 |
Multiplicateur. |
Valeur de retour
Renvoie le résultat de n1 × n2.
Exemple
n3 = mul(10, 20)
say(concat('n3=', n3))
Sortie : n3=200
div
Renvoie le quotient de deux nombres. Par exemple, div(10, 20) renvoie 0.5.
Syntaxe
div(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Dividende. |
n2 |
Diviseur. |
Valeur de retour
Renvoie le résultat de n1 / n2.
Exemple
n4 = div(10, 20)
say(concat('n4=', n4))
Sortie : n4=0.5
mod
Renvoie le reste de la division d'un nombre par un autre. Par exemple, mod(35, 20) renvoie 15.
Syntaxe
mod(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Dividende. |
n2 |
Diviseur. |
Valeur de retour
Renvoie le résultat de n1 % n2.
Exemple
n5 = mod(35, 20)
say(concat('n5=', n5))
Sortie : n5=15
Fonctions de comparaison
Les quatre fonctions de comparaison acceptent deux arguments numériques et renvoient true ou false. Utilisez tonumber() pour convertir les paramètres de requête de type chaîne en nombres avant de les comparer.
gt
Renvoie true si n1 est strictement supérieur à n2, sinon renvoie false. Par exemple, gt(11, 10) renvoie true.
Syntaxe
gt(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Valeur de référence. |
Valeur de retour
Renvoie true si n1 > n2, sinon renvoie false.
Exemple
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}
Requête : /path1/path2/file?num=11
Réponse : num > 10
ge
Renvoie true si n1 est supérieur ou égal à n2, sinon renvoie false. Par exemple, ge(10, 10) renvoie true.
Syntaxe
ge(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Valeur de référence. |
Valeur de retour
Renvoie true si n1 >= n2, sinon renvoie false.
Exemple
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}
Requête : /path1/path2/file?num=10
Réponse : num >= 10
lt
Renvoie true si n1 est strictement inférieur à n2, sinon renvoie false. Par exemple, lt(9, 10) renvoie true.
Syntaxe
lt(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Valeur de référence. |
Valeur de retour
Renvoie true si n1 < n2, sinon renvoie false.
Exemple
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}
Requête : /path1/path2/file?num=9
Réponse : num < 10
le
Renvoie true si n1 est inférieur ou égal à n2, sinon renvoie false. Par exemple, le(10, 10) renvoie true.
Syntaxe
le(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Valeur de référence. |
Valeur de retour
Renvoie true si n1 <= n2, sinon renvoie false.
Exemple
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}
Requête : /path1/path2/file?num=10
Réponse : num <= 10
Exemple de comparaison
L'exemple suivant lit le paramètre de requête num dans l'URL de la requête et le compare à la valeur 10 au moyen des quatre fonctions de comparaison.
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}
| Requête | Réponse |
|---|---|
/path1/path2/file?num=10 |
num <= 10num >= 10 |
/path1/path2/file?num=11 |
num > 10num >= 10 |
/path1/path2/file?num=9 |
num < 10num <= 10 |
Fonctions d'arrondi
floor
Arrondit un nombre par défaut à l'entier le plus proche. Par exemple, floor(9.3) renvoie 9.
Syntaxe
floor(n)
Paramètres
| Paramètre | Description |
|---|---|
n |
Nombre à arrondir par défaut. |
Valeur de retour
Renvoie le plus grand entier inférieur ou égal à n.
Exemple
n = floor(tonumber($arg_num))
say(concat('floor: ', n))
Requête : /path1/path2/file?num=9.3
Réponse : floor: 9
ceil
Arrondit un nombre par excès à l'entier le plus proche. Par exemple, ceil(9.3) renvoie 10.
Syntaxe
ceil(n)
Paramètres
| Paramètre | Description |
|---|---|
n |
Nombre à arrondir par excès. |
Valeur de retour
Renvoie le plus petit entier supérieur ou égal à n.
Exemple
n = ceil(tonumber($arg_num))
say(concat('ceil: ', n))
Requête : /path1/path2/file?num=9.3
Réponse : ceil: 10
Exemple d'arrondi
L'exemple suivant lit le paramètre de requête num et affiche les valeurs d'arrondi par excès et par défaut.
if $arg_num {
say(concat('ceil: ', ceil(tonumber($arg_num))))
say(concat('floor: ', floor(tonumber($arg_num))))
}
Requête : /path1/path2/file?num=9.3
Réponse : ceil: 10 floor: 9