項目 | 説明 |
構文 | foreach(d, f, user_data) |
機能 | - この関数は、ディクショナリ (d) 内の要素をトラバースし、要素ごとにコールバック関数 (f) を呼び出します。
f(key, value, user_data) の構文でfパラメーターを設定します。 f() 関数がfalseを返すと、foreach() ループが終了します。
|
パラメーター | - d: 辞書の名前。
- f: コールバック関数。
- user_data: 送信するユーザーデータ。 データ型: dictionary。
|
戻り値 | 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, []) 出力:キー [1]=e66fd4aa-f281-472f-b919-fc7e7474de25
キー [2]=66fee78d-1887-42ec-9119-a9b50b7fbca2
キー [dev]=243390eb-00b7-4551-a6b8-021bb34d1674
キー [ゼウス]=4747d33b-12b0-45e6-ac10-a8e191d6adaa
- 例2: 最初の2つの
M3U8 スライスを印刷し、foreachループを終了します。 def echo_each(k, v, u) {
say(v)
if match(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) {
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 (ライン、echo_each、u)
出力: # 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
|