StyleBookの設定

組み込み関数

StyleBookの式では、組み込み関数を使用できます。

たとえば、組み込み関数str()を使用して、数値を文字列に変換できます。

str($parameters.order)

または、組み込み関数int()を使用して、文字列を整数に変換できます。

int($parameters.priority)

以下は、StyleBookの式でサポートされている組み込み関数の一覧と、それらの使用方法の例です。

str()関数

str()関数は、入力引数を文字列値に変換します。

許可される引数の型:

  • string
  • number
  • tcp-port
  • boolean
  • ipaddress

:

  • "set-" + str(10)関数は"set-10"を返します。
  • str(10)関数は10を返します。
  • str(1.1.1.1)関数は1.1.1.1を返します。
  • str(True)関数は"True"を返します。
  • str(NetScaler Console)関数は"NetScaler Console"を返します。

int()関数

int()関数は、文字列、数値、IPアドレス、またはtcpportを引数として受け取り、整数を返します。

:

  • int("10")関数は10を返します。
  • int(10)関数は10を返します。
  • int(ip('0.0.4.1'))関数は1025を返します。

bool()関数

bool()関数は任意の型を引数として受け取ります。引数の値がfalse、空、または存在しない場合、この関数はfalseを返します。

それ以外の場合は、trueを返します。

:

  • bool(true)関数はtrueを返します。
  • bool(false)関数はfalseを返します。
  • bool($parameters.a)関数は、$parameters.afalse、空、または存在しない場合にfalseを返します。

len()関数

len()関数は、文字列またはリストを引数として受け取り、文字列内の文字数またはリスト内の項目数を返します。

例 1:

置換を次のように定義した場合:

items: ["123", "abc", "xyz"]

len($substitutions.items)関数は3を返します。

例 2:

len("NetScaler Console")関数は10を返します。

例 3:

$parameters.vips['1.1.1.1', '1.1.1.2', '1.1.1.3']の値がある場合、len($parameters.vips)関数は3を返します。

min()関数

min()関数は、リストまたは一連の数値またはTCPポートを引数として受け取り、最小の項目を返します。

数値/TCPポートのシリーズの例:

  • min(80, 100, 1000)関数は80を返します。
  • min(-20, 100, 400)関数は-20を返します。
  • min(-80, -20, -10)関数は-80を返します。
  • min(0, 100, -400)関数は-400を返します。

数値/TCPポートのリストの例:

  • $parameters.portsがTCPポートのリストであり、[80, 81, 8080]の値を持つとします。

    min($parameters.ports)関数は80を返します。

max()関数

max()関数は、リストまたは一連の数値またはTCPポートを引数として受け取り、最大の項目を返します。

数値/TCPポートのシリーズの例:

  • max(80, 100, 1000)関数は1000を返します。
  • max(-20, 100, 400)関数は400を返します。
  • max(-80, -20, -10)関数は-10を返します。
  • max(0, 100, -400)関数は100を返します。

数値/TCPポートのリストの例:

  • $parameters.portsがTCPポートのリストであり、[80, 81, 8080]の値を持つとします。

    max($parameters.ports)関数は8080を返します。

bin()関数

bin()関数は、数値を引数として受け取り、その数値をバイナリ形式で表す文字列を返します。

式の例:

bin(100)関数は0b1100100を返します。

oct()関数

oct()関数は、数値を引数として受け取り、その数値を8進数形式で表す文字列を返します。

式の例:

oct(100)関数は0144を返します。

hex()関数

hex()関数は、数値を引数として受け取り、その数値を16進数形式で表す小文字の文字列を返します。

式の例:

hex(100)関数は0x64を返します。

lower()関数

lower()関数は、文字列を引数として受け取り、同じ文字列を小文字で返します。

:

lower("NetScaler Console")関数はNetScaler Consoleを返します。

upper()関数

upper()関数は、文字列を引数として受け取り、同じ文字列を大文字で返します。

:

upper("NetScaler Console")関数はNetScaler Consoleを返します。

sum()関数

sum()関数は、数値またはtcpportのリストを引数として受け取り、リスト内の数値の合計を返します。

例 1:

置換を次のように定義した場合: substitutions:

list-of-numbers = [11, 22, 55]

sum($substitutions.list-of-numbers)関数は88を返します。

例 2:

$parameters.ports[80, 81, 82]の場合、sum($parameters.ports)関数は243を返します。

pow()関数

pow()関数は2つの数値を引数として受け取り、最初の引数を2番目の引数の累乗で表す数値を返します。

:

pow(3,2)関数は9を返します。

ip()関数

ip()関数は、整数、文字列、またはIPアドレスを引数として受け取り、入力値に基づいてIPアドレスを返します。

:

  • ip関数でIPアドレスを指定します。

    ip(3.1.1.1)関数は3.1.1.1を返します。

  • ip関数で文字列を指定します。

    ip('2.1.1.1')関数は2.1.1.1を返します。

  • ip関数で整数を指定します。

    • ip(12)関数は0.0.0.12を返します。

    • ip関数で整数を文字列として指定すると、入力に相当するIPアドレスが返されます。

      ip('1025')関数は0.0.4.1を返します。

    この関数は、整数の加算および減算操作もサポートしており、結果のIPアドレスを返します。

    • 加算: ip(1025) + ip(12)関数は0.0.4.13を返します。

    • 減算: ip('1025') - ip(12)関数は0.0.3.245を返します。

    • 加算と減算の組み合わせ: ip('1.1.1.1') + ip('1.1.1.1') – ip(2)2.2.2.0を返します。

ip_network()関数

ip_network関数は、IPアドレスとネットマスク長を引数として受け取り、IPネットワーク表記を返します。

例 1:

ip_network(1.1.1.1, 28)関数は1.1.1.1/28を返します。

例 2:

$parameters.ipaddrの値が1.1.1.1であるとします。ip_network($parameters.ipaddr, 30)関数は1.1.1.1/30を返します。

例 3:

$parameters.netmask-lenの値が24であるとします。ip_network(23.1.12.76, $parameters.netmask-len)関数は23.1.12.76/24を返します。

network_ip()関数

network_ip()関数は、指定されたIPネットワークの最初のIPアドレスを返します。

:

network_ip(1.1.1.1/28)関数は1.1.1.0を返します。この例では、1.1.1.0が指定されたネットワークの最初のIPアドレスです。

subnets()関数

subnets()関数は、指定されたIPネットワークとネットマスク長からサブネットのリストを返します。

:

subnets(1.1.1.1/28, 30)関数は、指定されたIPネットワークとネットマスク長からサブネットリストを返します。出力は次のとおりです。

[1.1.1.0/30', '1.1.1.4/30', '1.1.1.8/30', '1.1.1.12/30']

netmask_ip()関数

netmask_ip()関数は、指定されたIPネットワークのネットマスクIPアドレスを返します。

:

netmask_ip(1.1.1.1/28)関数は255.255.255.240を返します。指定されたIPネットワークの場合、255.255.255.240がネットマスクIPアドレスです。

is_netmask_ip()関数

is_netmask_ip()関数はipaddressを入力として受け取ります。そして、指定された値が有効なネットマスクIPアドレスである場合、Trueを返します。

例 1:

is_netmask_ip(255.255.255.240)関数は、指定された値が有効なネットマスクIPアドレスであるため、Trueを返します。

例 2:

is_netmask_ip(255.255.255.232)関数は、指定された値が有効なネットマスクIPアドレスではないため、Falseを返します。

broadcast_ip()関数

broadcast_ip()関数は、指定されたIPネットワークのブロードキャストIPアドレスを返します。

:

broadcast_ip(1.1.1.1/28)関数は1.1.1.15を返します。指定されたIPネットワークの場合、1.1.1.15がブロードキャストIPアドレスです。

cidr()関数

cidr()関数は、指定されたIPネットワークのCIDR表記を返します。

:

cidr(1.1.1.1/28)関数は1.1.1.0/28を返します。指定されたIPネットワークの場合、1.1.1.0/28がCIDR表記です。

is_cidr()関数

is_cidr()関数はipnetworkを入力として受け取ります。そして、指定された値がIPネットワークのCIDR表記と一致する場合、Trueを返します。

例 1:

is_cidr(1.1.1.0/24)関数は、指定された値が指定されたネットワークのCIDR表記であるため、Trueを返します。

例 2:

is_cidr(1.1.1.1/28)関数は、指定されたネットワークのCIDR表記が指定された値と異なるため、Falseを返します。

is_in_network()関数

is_in_network()関数はipnetworkipaddressの値を受け取ります。そして、指定されたIPアドレスが指定されたIPネットワークに存在する場合、Trueを返します。

例 1:

is_in_network(1.1.1.1/24, 1.1.1.121)関数は、1.1.1.121アドレスが1.1.1.1/24ネットワークの一部であるため、Trueを返します。

例 2:

is_in_network(1.1.1.1/28, 2.1.1.1)関数は、2.1.1.1アドレスが1.1.1.1/28ネットワークの一部ではないため、Falseを返します。

base64.encode()関数

base64.encode()関数は、文字列引数を受け取り、base64エンコードされた文字列を返します。

:

base64.encode("abcd")関数はYWJjZA==を返します。

base64.decode()関数

base64.decode関数は、base64エンコードされた文字列を引数として受け取り、デコードされた文字列を返します。

:

base64.decode("YWJjZA==")関数はabcdを返します。

exists()関数

exists()関数は任意の型の引数を受け取り、ブール値を返します。入力に何らかの値がある場合、戻り値はTrueです。入力引数に値がない場合(つまり、値がない場合)、戻り値はFalseです。

$parameters.monitorがオプションのパラメーターであるとします。設定パックの作成時にこのパラメーターに値を指定すると、($parameters.monitor)関数はTrueを返します。

それ以外の場合は、Falseを返します。

filter()関数

filter()関数は2つの引数を受け取ります。

引数 1: 1つの引数を受け取り、ブール値を返す置換関数。

引数 2: リスト。

この関数は、元のリストのサブセットを返します。このサブセットでは、各要素が最初の引数の置換関数に渡されたときにTrueと評価されます。

:

置換関数を次のように定義したとします。

Substitutions:

x(a): $a != 81

この関数は、入力値が81と等しくない場合にTrueを返します。それ以外の場合は、Falseを返します。

$parameters.ports[81, 80, 81, 89]であるとします。

filter($substitutions.x, $parameters.ports)は、リストから81のすべての出現を削除して[80, 89]を返します。

if-then-else()関数

if-then-else()関数は3つの引数を受け取ります。

引数 1: ブール式

引数 2: 任意の式

引数 3: 任意の式(オプション)

引数 1の式がTrueと評価された場合、関数は引数 2として提供された式の値を返します。

それ以外の場合、引数 3が提供されていれば、関数は引数 3の式の値を返します。

引数 3が提供されていない場合、関数はnoを返します。

例 1:

if-then-else($parameters.servicetype == HTTP, 80, 443)関数は、$parameters.servicetypeHTTPの値を持つ場合、80を返します。それ以外の場合、関数は443を返します。

例 2:

if-then-else($parameters.servicetype == HTTP, $parameters.hport, $parameters.sport)関数は、$parameters.servicetypeHTTPの値を持つ場合、$parameters.hportの値を返します。

それ以外の場合、関数は$parameters.sportの値を返します。

例 3:

if-then-else($parameters.servicetype == HTTP, 80)は、$parameters.servicetypeHTTPの値を持つ場合、80を返します。

それ以外の場合、関数は値を返しません。

join()関数

join()関数は2つの引数を受け取ります。

引数 1: numbertcp-portstringipaddressのリスト。

引数 2: 区切り文字列(オプション)

この関数は、引数 1として提供されたリストの要素を文字列に結合します。この文字列では、各要素が引数 2として提供された区切り文字列によって区切られます。引数 2が提供されていない場合、リスト内の要素は1つの文字列として結合されます。

:

  • $parameters.ports[81, 82, 83]です。

    • 区切り文字引数を使用する場合:

      join($parameters.ports, '-')関数は81-82-83を返します。

    • 区切り文字引数を使用しない場合:

      join($parameters.ports)関数は818283を返します。

split()関数

split()関数は、指定された区切り文字に応じて入力文字列を複数のリストに分割します。区切り文字が指定されていないか空白('')の場合、この関数はスペースを区切り文字と見なし、文字列をリストに分割します。

例:

  • split('Example_string_split', 's')関数は['Example_','tring_','plit']を返します。

  • split('Example string split')関数は['Example','string','split']を返します。

  • split('Example string split', '')関数は['Example','string','split']を返します。

  • split('Example string')関数は['Example','string']を返します。

    この関数は、連続するスペースを1つのスペースと見なします。

map()関数

map()関数は2つの引数を受け取ります。

引数 1: 任意の関数

引数 2: 要素のリスト

この関数は、リスト内の各要素が、引数 2の対応する要素にmap()関数(引数 1)を適用した結果であるリストを返します。

引数 1で許可される関数:

  • 1つの引数を受け取る組み込み関数:

    base64.encode, base64.decode, bin, bool, exists, hex, int, ip, len, lower, upper, oct, quotewrap, str, trim, upper, url.encode, url.decode

  • 少なくとも1つの引数を受け取る置換関数。

:

$parameters.nums[81, 82, 83]であるとします。

  • 組み込み関数strを使用したマップ

    map(str, $parameters.nums)関数は["81", "82", "83"]を返します。

    map関数の結果は文字列のリストであり、各要素は入力リスト($parameters.nums)の対応する要素にstr関数を適用することによって計算された文字列です。

  • 置換関数を使用したマップ

    • 置換:

      add-10(port): $port + 10

    • 式:

      map($substitutions.add-10, $parameters.nums)関数は数値のリスト[ 91, 92, 93 ]を返します。

このmap関数の結果は数値のリストです。各要素は、入力リスト($parameters.nums)の対応する要素に置換関数$substitutions.add-10を適用することによって計算されます。

quotewrap()関数

quotewrap()関数は、文字列を引数として受け取り、入力値の前後に二重引用符文字を追加した文字列を返します。

:

quotewrap("NetScaler Console")関数は"NetScaler Console"を返します。

replace()関数

replace()関数は3つの引数を受け取ります。

引数 1: stringまたは次の組み込み型のリスト:

  • string
  • number
  • ipaddress
  • tcp-port
  • boolean

引数 2: 引数 1で指定された型と一致する単一の値または値のリスト

引数 3: 引数 1で指定された型と同じ型の単一の値(オプション)

replace()関数は、引数 1内の引数 2のすべての出現を引数 3に置き換えます。

引数 3が提供されていない場合、引数 1から引数 2のすべての出現が削除されます。

:

  • replace('abcdef', 'def', 'xyz')関数はabcxyzを返します。

    defのすべての出現はxyzに置き換えられます。

  • replace('abcdefabc', 'def')abcabcを返します。

    引数 3がないため、defは結果の文字列から削除されます。

  • replace('An#example@to%replace!characters', ['@', '#', '!', '%'], '_')関数はAn_example_to_replace_charactersを返します。

    出力文字列には、['@', '#', '!', '%']で指定された文字の代わりにアンダースコア(_)が含まれます。

  • replace([10.10.10.1, 10.10.10.2, 10.10.10.3, 10.10.10.4], [10.10.10.2, 10.10.10.4])関数は[10.10.10.1, 10.10.10.3]を返します。

    引数 3がないため、10.10.10.210.10.10.4は結果のIPアドレスリストから削除されます。

  • replace([8080, 8081, 8082, 8083, 8084], 8083, 80)関数は[8080, 8081, 8082, 80, 8084]を返します。

    8083のすべての出現は80に置き換えられます。

trim()関数

trim()関数は、入力文字列から先頭と末尾の空白が削除された文字列を返します。

:

trim(' abc ')関数はabcを返します。

truncate()関数

truncate()関数は2つの引数を受け取ります。

引数 1: 文字列

引数 2: 数値

この関数は、引数 1の入力文字列が引数 2で指定された長さに切り詰められた文字列を返します。

:

truncate('Stylebooks', 6)Stylebを返します。

distinct()関数

distinct()関数は、リスト入力から一意の項目を抽出します。

例: $parameters.input_list['ADC', 'VPX', 'ADC', 'CPX']の場合、distinct($parameters.input_list)関数は['ADC', 'VPX', 'CPX']を返します。

url.encode()関数

url.encode()関数は、RFC 3986に従ってASCII文字セットを使用して文字が変換された文字列を返します。

:

url.encode("a/b/c")関数はa%2Fb%2Fcを返します。

url.decode()関数

url.decode()関数は、RFC 3986に従ってURLエンコードされた引数が通常の文字列にデコードされた文字列を返します。

:

url.decode("a%2Fb%2Fc")関数はa/b/cを返します。

is-ipv4()関数

is-ipv4()関数は、IPアドレスを引数として受け取り、IPアドレスがIPv4形式である場合にブール値Trueを返します。

is-ipv4(10.10.10.10)関数はTrueを返します。

is-ipv6()関数

is-ipv6()関数は、IPアドレスを引数として受け取り、IPアドレスがIPv6形式である場合にブール値Trueを返します。

is-ipv6(2001:DB8::)関数はTrueを返します。

startswith()関数

startswith()関数は、文字列が指定されたプレフィックスで始まるかどうかを判断します。この関数には、2つの必須文字列引数が必要です。

startswith(str, sub_str)

この関数は、文字列(str)が部分文字列(sub_str)で始まる場合にTrueを返します。

:

  • startswith('Citrix', 'Ci')関数はTrueを返します。
  • startswith('Citrix', 'iC')関数はFalseを返します。
  • startswith('Citrix', 'Ab')関数はFalseを返します。

endswith()関数

endswith()関数は、文字列が指定されたサフィックスで終わるかどうかを判断します。この関数には、2つの必須文字列引数が必要です。

endswith(str, sub_str)

この関数は、文字列(str)が部分文字列(sub_str)で終わる場合にTrueを返します。

:

  • endswith('Citrix', 'ix')関数はTrueを返します。
  • endswith('Citrix', 'Ix')関数はFalseを返します。
  • endswith('Citrix', 'ab')関数はFalseを返します。

contains()関数

contains()関数は、文字列が指定された部分文字列を含むかどうかを判断します。この関数には、2つの必須文字列引数が必要です。

許可される引数の型:

  • string
  • number
  • tcp-port
  • boolean
  • ipaddress

contains(str, sub_str)

この関数は、部分文字列(sub_str)が文字列(str)内のどこかに含まれている場合にTrueを返します。

:

  • contains('Citrix', 'tri')関数はTrueを返します。
  • contains('Citrix', 'Ci')関数はTrueを返します。
  • contains('Citrix', 'ti')関数はFalseを返します。

この関数を使用して、指定された項目がリストに属しているかどうかを確認することもできます。

:

list_of_strings = [“Citrix”, “Core”, ”Values”, ”Integrity”]

contains($parameters.list_of_strings, “Values”)
<!--NeedCopy-->

この例では、リストにValues項目が含まれているため、contains()関数はTrueを返します。

substring()関数

substring()関数を使用して、文字列から部分文字列を抽出します。

substring(str, start_index, end_index)

この関数には、2つの必須引数と1つのオプションの整数引数が必要です。

  • str(必須)
  • start_index(必須)
  • end_index(オプション)

この関数は、指定されたインデックス位置の間にある文字列(str)からの部分文字列を返します。終了インデックス位置を指定しない場合、関数は開始インデックスから文字列の末尾までの部分文字列を抽出します。

end_indexを指定すると、部分文字列にはend_index位置の文字は含まれません。

例:

  • substring('Citrix', 2)関数はtrixを返します。

  • substring('Citrix', 10)関数は""を返します。

    この例では、無効なstart_index位置があるため、関数は空白の文字列を返します。

  • substring('Citrix', 2, 4)関数はtrを返します。

    この例では、関数は2から4のインデックス位置間の文字を抽出します。

  • substring('Citrix', -3)関数はrixを返します。

    文字列の末尾にある文字を抽出したい場合は、start_index引数に負の値を指定します。

    この例では、関数は文字列の最後の3文字を含む部分文字列を抽出します。

match()関数

match()関数は、入力文字列が定義された正規表現パターンと一致するかどうかをチェックします。この関数は、正規表現パターンと検索文字列を引数として受け取ります。オプションで、大文字と小文字を区別するパターンを無視するためにブール型を指定することもできます。

:

  • match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “A2_B2”)Trueを返します。

  • match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_b2”)Falseを返します。

  • match(“^[A-Z0-9]{2}_[A-Z0-9]{2,10}$”, “a2_B2”, $parameters.ignore_case)Trueを返します。

sha256()関数

この関数を使用して、任意の文字列のSHA-256ハッシュを計算します。この関数は任意の長さの文字列入力を受け入れ、固定長(64文字)のハッシュ文字列を返します。

:

components:
    -
        name: lbvserver-comp
        type: ns::lbvserver
        properties:
            name: sha256(lbserver-name)
            servicetype: SSL
            ipv46: 10.10.10.10
<!--NeedCopy-->

この例では、lbserver-nameはNetScalerオブジェクト上でハッシュ文字列として表示されます。

この関数は、式を入力として受け入れることもできます。

:

components:
    -
        name: lbvserver-comp
        type: ns::lbvserver
        properties:
            name: sha256($parameters.lb-appname)
            servicetype: SSL
            ipv46: 10.10.10.10
<!--NeedCopy-->

relate()関数

relate()関数は、一連のリストから辞書オブジェクトのリストを形成します。

2つの引数を受け取ります。

引数 1: キー名を表す文字列のリスト。

引数 2: リストのリスト。各リストには、引数 1の対応するキー名の値が含まれます。引数 2の各リストは同じ長さである必要があります。引数 2のリストの数は、引数 1の文字列の数と等しい必要があります。

:

name: test_relate_3
description: "Hello World StyleBook."
namespace: com.citrix.adc.stylebooks
schema-version: "1.0"
version: "1.1"

import-stylebooks:
    -
        namespace: netscaler.nitro.config
        prefix: ns
        version: "10.5"
    -
        namespace: com.citrix.adc.stylebooks
        prefix: stlb
        version: "1.0"
        parameters:
    -
        name: namesofservers
        description: "Provide the names of LB VServers"
        type: string[]
    -
        name: listofips
        description: "Provide the list of IP Addresses"
        type: string[]
    -
        name: list_of_keys
        type: string[]
        default:
        -  "name"
        -  "ip"

    substitutions:
        list_of_values: [$parameters.namesofservers,$parameters.listofips]
    components:
    -
        name: svc-comp
        type: object
        properties:
        svcdetails: relate($parameters.list_of_keys,$substitutions.list_of_values)

    -
        name: lb-comp
        type: ns::lbvserver
        repeat: $components.svc-comp.properties.svcdetails
        repeat-item: svcd
        properties:
            name: $svcd['name']
            servicetype: HTTP
            ipv46: $svcd['ip']
            port: 80
<!--NeedCopy-->

この例では:

  • parametersセクションには、nameipというlist_of_keysというリストがあります。

  • substitutionsセクションには、次の2つのリストを含むlist_of_valuesというリストがあります。

    • 仮想サーバー名のリスト(string
    • IPアドレスのリスト(string)。

relate()組み込み関数は、list_of_keyslist_of_valuesを引数として受け取ります。その後、関数は辞書オブジェクトのリストを作成します。各オブジェクトには、最初のリストからの名前と2番目のリストからのIPアドレスが含まれます。

次の仮想サーバーのリストを提供した場合:

["lb1","lb2"]
<!--NeedCopy-->

および仮想サーバーIPアドレスのリストとして:

["1.1.1.1","2.2.3.3"]
<!--NeedCopy-->

relate()関数は次のリストを返します。

[\{"name": "lb1", "ip": "1.1.1.1"},\{"name": "lb2", "ip": "2.2.3.3"}]
<!--NeedCopy-->

StyleBookは、componentsセクションでこの辞書オブジェクトのリストを反復処理し、対応する仮想サーバーを作成します。

multiple()関数

multiple()関数は2つの引数を受け取ります。

引数 1: numberstringbooleanipaddresstcp-port、またはpassword

引数 2: number

multiple(argument1, argument2)関数は、引数 1の多数のコピーを含むリストを返します。コピーの数は、引数 2に渡された数値と等しくなります。

:

  • multiple(10.10.10.10, 3)関数は[10.10.10.10, 10.10.10.10, 10.10.10.10]を返します。

  • multiple(8080, 4)関数は[8080, 8080, 8080, 8080]を返します。

reverse()関数

reverse()関数は、項目のリストを引数として受け取り、同じ項目を逆順に並べたリストを返します。

引数は、次の組み込み型のリストにすることができます。

  • string
  • number
  • ipaddress
  • ipnetwork
  • tcp-port
  • boolean
  • password
  • object
  • file
  • certfile
  • keyfile
  • certkey

例:

  • reverse([10.102.20.1, 10.102.20.2, 10.102.20.3])[10.102.20.3, 10.102.20.2, 10.102.20.1]を返します。
  • reverse([80,81,82,81])[81,82,81,80]を返します。
  • reverse([‘app-mx’,’app-cx’,’conf-27’,’app3’])[‘app3’,’conf-27’,’app-cx’,’app-mx’]を返します。