EdgeScript は、CDN のエッジルール内で算術演算、比較、丸めを行うための組み込み数値関数を提供します。
算術関数
add
2 つの数値の和を返します。例: add(10, 20) は 30 を返します。
構文
add(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 最初の被加数。 |
n2 | 2 番目の被加数。 |
戻り値
n1 + n2 を返します。
例
n1 = add(10, 20)
say(concat('n1=', n1))出力: n1=30
sub
2 つの数値の差を返します。例: sub(10, 20) は -10 を返します。
構文
sub(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 被減数 (減算される側の数値)。 |
n2 | 減数 (減算する側の数値)。 |
戻り値
n1 - n2 を返します。
例
n2 = sub(10, 20)
say(concat('n2=', n2))出力: n2=-10
mul
2 つの数値の積を返します。例: mul(10, 20) は 200 を返します。
構文
mul(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 被乗数。 |
n2 | 乗数。 |
戻り値
n1 × n2 を返します。
例
n3 = mul(10, 20)
say(concat('n3=', n3))出力: n3=200
div
2 つの数値の商を返します。例: div(10, 20) は 0.5 を返します。
構文
div(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 配当金。 |
n2 | 除数。 |
戻り値
n1 / n2 を返します。
例
n4 = div(10, 20)
say(concat('n4=', n4))出力: n4=0.5
mod
ある数値を別の数値で割ったときの剰余を返します。例: mod(35, 20) は 15 を返します。
構文
mod(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 配当金。 |
n2 | 除数。 |
戻り値
n1 % n2 を返します。
例
n5 = mod(35, 20)
say(concat('n5=', n5))出力: n5=15
比較関数
4 つの比較関数はすべて、2 つの数値引数を受け取り、true または false を返します。比較する前に、tonumber() を使用して文字列のクエリパラメーターを数値に変換してください。
gt
n1 が n2 より大きい場合は true を返し、それ以外の場合は false を返します。例: gt(11, 10) は true を返します。
構文
gt(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 比較する数値。 |
n2 | 比較対象の数値。 |
戻り値
n1 > n2 の場合は true を返し、それ以外の場合は false を返します。
例
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}リクエスト: /path1/path2/file?num=11
レスポンス: num > 10
ge
n1 が n2 以上である場合は true を返し、それ以外の場合は false を返します。例: ge(10, 10) は true を返します。
構文
ge(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 比較する数値。 |
n2 | 比較対象の数値。 |
戻り値
n1 >= n2 の場合は true を返し、それ以外の場合は false を返します。
例
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}リクエスト: /path1/path2/file?num=10
レスポンス: num >= 10
lt
n1 が n2 より小さい場合は true を返し、それ以外の場合は false を返します。例: lt(9, 10) は true を返します。
構文
lt(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 比較する数値。 |
n2 | 比較対象の数値。 |
戻り値
n1 < n2 の場合は true を返し、それ以外の場合は false を返します。
例
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}リクエスト: /path1/path2/file?num=9
レスポンス: num < 10
le
n1 が n2 以下である場合は true を返し、それ以外の場合は false を返します。例: le(10, 10) は true を返します。
構文
le(n1, n2)パラメーター
| パラメーター | 説明 |
|---|---|
n1 | 比較する数値。 |
n2 | 比較対象の数値。 |
戻り値
n1 <= n2 の場合は true を返し、それ以外の場合は false を返します。
例
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}リクエスト: /path1/path2/file?num=10
レスポンス: num <= 10
比較の例
次の例では、リクエスト URL から num クエリパラメーターを読み取り、4 つすべての比較関数を使用して、その値を 10 と比較評価します。
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')
}| リクエスト | レスポンス |
|---|---|
/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 |
丸め関数
floor
数値を最も近い整数に切り捨てます。例: floor(9.3) は 9 を返します。
構文
floor(n)パラメーター
| パラメーター | 説明 |
|---|---|
n | 切り捨てる数値。 |
戻り値
n 以下の最大の整数を返します。
例
n = floor(tonumber($arg_num))
say(concat('floor: ', n))リクエスト: /path1/path2/file?num=9.3
レスポンス: floor: 9
ceil
数値を最も近い整数に切り上げます。例: ceil(9.3) は 10 を返します。
構文
ceil(n)パラメーター
| パラメーター | 説明 |
|---|---|
n | 切り上げる数値。 |
戻り値
n 以上の最小の整数を返します。
例
n = ceil(tonumber($arg_num))
say(concat('ceil: ', n))リクエスト: /path1/path2/file?num=9.3
レスポンス: ceil: 10
丸めの例
次の例では、num クエリパラメーターを読み取り、天井値と床値の両方を出力します。
if $arg_num {
say(concat('ceil: ', ceil(tonumber($arg_num))))
say(concat('floor: ', floor(tonumber($arg_num))))
}リクエスト: /path1/path2/file?num=9.3
レスポンス: ceil: 10 floor: 9