EdgeScript menyediakan fungsi numerik bawaan untuk operasi aritmetika, perbandingan, dan pembulatan dalam aturan edge CDN.
Fungsi aritmetika
add
Mengembalikan jumlah dua angka. Misalnya, add(10, 20) mengembalikan 30.
Sintaks
add(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Addend pertama. |
n2 | Addend kedua. |
Nilai kembalian
Mengembalikan n1 + n2.
Contoh
n1 = add(10, 20)
say(concat('n1=', n1))Output: n1=30
sub
Mengembalikan selisih dua angka. Misalnya, sub(10, 20) mengembalikan -10.
Sintaks
sub(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Minuend (angka yang dikurangi). |
n2 | Subtrahend (angka pengurang). |
Nilai kembalian
Mengembalikan n1 - n2.
Contoh
n2 = sub(10, 20)
say(concat('n2=', n2))Output: n2=-10
mul
Mengembalikan hasil perkalian dua angka. Misalnya, mul(10, 20) mengembalikan 200.
Sintaks
mul(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Bilangan yang dikalikan. |
n2 | Multiplier. |
Nilai kembalian
Mengembalikan n1 × n2.
Contoh
n3 = mul(10, 20)
say(concat('n3=', n3))Output: n3=200
div
Mengembalikan hasil bagi dua angka. Misalnya, div(10, 20) mengembalikan 0,5.
Sintaks
div(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Dividen. |
n2 | Divisor. |
Nilai kembalian
Mengembalikan n1 / n2.
Contoh
n4 = div(10, 20)
say(concat('n4=', n4))Output: n4=0,5
mod
Mengembalikan sisa bagi setelah membagi satu angka dengan angka lainnya. Misalnya, mod(35, 20) mengembalikan 15.
Sintaks
mod(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Dividen. |
n2 | Divisor. |
Nilai kembalian
Mengembalikan n1 % n2.
Contoh
n5 = mod(35, 20)
say(concat('n5=', n5))Output: n5=15
Fungsi perbandingan
Keempat fungsi perbandingan menerima dua argumen numerik dan mengembalikan true atau false. Gunakan tonumber() untuk mengonversi parameter kueri string menjadi angka sebelum melakukan perbandingan.
gt
Mengembalikan true jika n1 lebih besar daripada n2; jika tidak, mengembalikan false. Misalnya, gt(11, 10) mengembalikan true.
Sintaks
gt(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Angka yang dibandingkan. |
n2 | Angka pembanding. |
Nilai kembalian
Mengembalikan true jika n1 > n2; jika tidak, mengembalikan false.
Contoh
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}Request: /path1/path2/file?num=11
Response: num > 10
ge
Mengembalikan true jika n1 lebih besar dari atau sama dengan n2; jika tidak, mengembalikan false. Misalnya, ge(10, 10) mengembalikan true.
Sintaks
ge(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Angka yang dibandingkan. |
n2 | Angka pembanding. |
Nilai kembalian
Mengembalikan true jika n1 >= n2; jika tidak, mengembalikan false.
Contoh
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}Request: /path1/path2/file?num=10
Response: num >= 10
lt
Mengembalikan true jika n1 lebih kecil daripada n2; jika tidak, mengembalikan false. Misalnya, lt(9, 10) mengembalikan true.
Sintaks
lt(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Angka yang dibandingkan. |
n2 | Angka pembanding. |
Nilai kembalian
Mengembalikan true jika n1 < n2; jika tidak, mengembalikan false.
Contoh
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}Request: /path1/path2/file?num=9
Response: num < 10
le
Mengembalikan true jika n1 lebih kecil dari atau sama dengan n2; jika tidak, mengembalikan false. Misalnya, le(10, 10) mengembalikan true.
Sintaks
le(n1, n2)Parameter
| Parameter | Deskripsi |
|---|---|
n1 | Angka yang dibandingkan. |
n2 | Angka pembanding. |
Nilai kembalian
Mengembalikan true jika n1 <= n2; jika tidak, mengembalikan false.
Contoh
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}Request: /path1/path2/file?num=10
Response: num <= 10
Contoh perbandingan
Contoh berikut membaca parameter kueri num dari URL permintaan dan mengevaluasinya terhadap nilai 10 menggunakan keempat fungsi perbandingan.
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')
}| Request | Response |
|---|---|
/path1/path2/file?num=10 | num <= 10 num >= 10 |
/path1/path2/file?num=11 | num > 10 num >= 10 |
/path1/path2/file?num=9 | num < 10 num <= 10 |
Fungsi pembulatan
floor
Membulatkan angka ke bawah ke bilangan bulat terdekat. Misalnya, floor(9.3) mengembalikan 9.
Sintaks
floor(n)Parameter
| Parameter | Deskripsi |
|---|---|
n | Angka yang akan dibulatkan ke bawah. |
Nilai kembalian
Mengembalikan bilangan bulat terbesar yang kurang dari atau sama dengan n.
Contoh
n = floor(tonumber($arg_num))
say(concat('floor: ', n))Permintaan: /path1/path2/file?num=9.3
Response: floor: 9
ceil
Membulatkan angka ke atas ke bilangan bulat terdekat. Contohnya, ceil(9.3) mengembalikan 10.
Sintaks
ceil(n)Parameter
| Parameter | Deskripsi |
|---|---|
n | Angka yang akan dibulatkan ke atas. |
Nilai kembalian
Mengembalikan bilangan bulat terkecil yang lebih dari atau sama dengan n.
Contoh
n = ceil(tonumber($arg_num))
say(concat('ceil: ', n))Permintaan: /path1/path2/file?num=9.3
Response: ceil: 10
Contoh pembulatan
Contoh berikut membaca parameter kueri num dan menampilkan nilai ceiling dan floor-nya.
if $arg_num {
say(concat('ceil: ', ceil(tonumber($arg_num))))
say(concat('floor: ', floor(tonumber($arg_num))))
}Permintaan: /path1/path2/file?num=9.3
Response: ceil: 10 floor: 9