このトピックでは、ディクショナリ関数の構文、説明、パラメーター、および戻り値について説明します。 このトピックでは、これらの関数の例も示します。
set
この関数は、次のように記述されます。
- 構文:
set(d, k, v) - 説明
この関数を呼び出して、
dパラメーターによって指定されたディクショナリのk/vペアを設定します。 - パラメーター
- d: ディクショナリの名前。
- k: キー。Data type : 任意の型。
- v: 値。Data type : 任意の型。
- 戻り値
この関数は、
trueを返します。 - 例
- 例 1
outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474de25', '66fee78d-1887-42ec-9119-a9b50b7fbca2'] say(concat('keys[1]=', get(outer_keys, 1))) say(concat('keys[2]=', get(outer_keys, 2))) inner_keys=[] set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d1674') set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6adaa') def echo_each(k, v, u) { s = concat('keys[', k, ']=', v) say(s) } foreach(inner_keys, echo_each, []) Output: keys[1]=e66fd4aa-f281-472f-b919-fc7e7474de25 keys[2]=66fee78d-1887-42ec-9119-a9b50b7fbca2 keys[dev]=243390eb-00b7-4551-a6b8-021bb34d1674 keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6adaa - 例 2
d_inner = [] set(d_inner, 'name', 'inner dsl') d_outer = [] set(d_outer, 'dictA', d_inner) v = get(d_outer, 'dictA') if v { v = get(v, 'name') if v { add_rsp_header('X-DSL-NESTED-DICT', v) } } Output: Add a response header. X-DSL-NESTED-DICT: inner dsl
- 例 1
get
この関数は、次のように記述されます。
- 構文:
get(d, k) - 説明
この関数を呼び出して、ディクショナリ (
d) から、キー (k) に対応する値 (v) を取得します。 - パラメーター
- d: ディクショナリの名前。
- k: キー。 Data type : 任意の型。
- 戻り値
この関数は、成功した場合は対応する値を返し、失敗した場合は
falseを返します。 - 例
outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474de25', '66fee78d-1887-42ec-9119-a9b50b7fbca2'] say(concat('keys[1]=', get(outer_keys, 1))) say(concat('keys[2]=', get(outer_keys, 2))) inner_keys=[] set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d1674') set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6adaa') def echo_each(k, v, u) { s = concat('keys[', k, ']=', v) say(s) } foreach(inner_keys, echo_each, []) Output: keys[1]=e66fd4aa-f281-472f-b919-fc7e7474de25 keys[2]=66fee78d-1887-42ec-9119-a9b50b7fbca2 keys[dev]=243390eb-00b7-4551-a6b8-021bb34d1674 keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6adaa
foreach
この関数は、次のように記述されます。
- 構文:
foreach (d, f, user_data) - 説明
- この関数を呼び出して、ディクショナリ (
d) の要素をスキャンし、各要素に対してコールバック関数 (f)を実行します。 f(key, value, user_data)構文のf構文のパラメーターを指定します。f()関数がfalseを返した場合、foreach()ループは終了します。
- この関数を呼び出して、ディクショナリ (
- パラメーター
- d: ディクショナリの名前。
- f: コールバック関数。
- user_data: 送信するユーザーデータ。Data type: ディクショナリ。
- 戻り値
この関数は必ず
trueを返します。 - 例
- 例 1
outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474de25', '66fee78d-1887-42ec-9119-a9b50b7fbca2'] say(concat('keys[1]=', get(outer_keys, 1))) say(concat('keys[2]=', get(outer_keys, 2))) inner_keys=[] set(inner_keys, 'dev', '243390eb-00b7-4551-a6b8-021bb34d1674') set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6adaa') def echo_each(k, v, u) { s = concat('keys[', k, ']=', v) say(s) } foreach(inner_keys, echo_each, []) Output: keys[1]=e66fd4aa-f281-472f-b919-fc7e7474de25 keys[2]=66fee78d-1887-42ec-9119-a9b50b7fbca2 keys[dev]=243390eb-00b7-4551-a6b8-021bb34d1674 keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6adaa - 例 2
M3U8スライスの最初の 2 件を出力し、foreach ループを終了します。def echo_each(k, v, u) { say(v) if match_re(v, '.*ts') { ts_cnt = get(u, 'ts_cnt') ts_cnt = add(ts_cnt, 1) set(u, 'ts_cnt', ts_cnt) if ge(ts_cnt, 2) { return false } } } m3u8 = '' m3u8 = concat(m3u8, '#EXTM3U8', '\n') m3u8 = concat(m3u8, '#EXT-X-MEDIA-SEQUENCE:140651513\n') m3u8 = concat(m3u8, '#EXT-X-TARGETDURATION:10\n') m3u8 = concat(m3u8, '#EXTINF:8,\n') m3u8 = concat(m3u8, 'http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651514_140651513.ts\n') m3u8 = concat(m3u8, '#EXTINF:9,\n') m3u8 = concat(m3u8, 'http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651514_140651514.ts\n') m3u8 = concat(m3u8, '#EXTINF:10,\n') m3u8 = concat(m3u8, 'http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651514_140651515.ts\n') lines = split(m3u8, '\n') u = [] set(u, 'ts_cnt', 0) foreach(lines, echo_each, u) Output: #EXTM3U8 #EXT-X-MEDIA-SEQUENCE:140651513 #EXT-X-TARGETDURATION:10 #EXTINF:8, http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651514_140651513.ts #EXTINF:9, http://vapp1.fw.live.cntv.cn/cache/289_/seg0/index140651514_140651514.ts
- 例 1
insert
要素を辞書に挿入します。 この関数の詳細を次の表に示します。
| 項目 | 説明 |
|---|---|
| 構文 | insert(list, value, [,pos]) |
| パラメーター |
|
| 例 | |
| 戻り値 | この関数は常にtrueの値を返します。 Return value in this example: |
sort
ディクショナリ内の要素をデフォルトの順序で並べ替えます。 この関数の詳細を次の表に示します。
| 項目 | 説明 |
|---|---|
| 構文 | sort(list[, comp]) |
| 機能 | compパラメーターを指定する場合は、指定したディクショナリの2つの要素をパラメーターとしてサポートする関数である必要があります。 最初の要素が2番目の要素の前に配置されている場合、trueの値が返されます。 したがって、not comp(a, b) 関数の要素がソートされた後、trueの値が返されます。 compパラメーターを指定しない場合、要素はANSIIコードに基づいて昇順でソートされます。 しかしながら、このソートアルゴリズムは不安定であり、ANSIIテーブルにおいて同じランクを有する2つの要素の元の順序を変更する可能性がある。 |
| パラメーター |
|
| 例 | |
| 戻り値 | この関数は常にtrueの値を返します。 この例の戻り値: |
削除
ディクショナリ内の指定された位置から要素を削除し、削除された要素を返します。 posパラメーターを指定しない場合、辞書の末尾にある要素は削除されます。 この関数の詳細を次の表に示します。
| 項目 | 説明 |
|---|---|
| 構文 | remove(list, [, pos]) |
| パラメーター |
|
| 例 | |
| 戻り値 | 指定された位置から削除された要素を返します。 この例の戻り値: |