Todos los productos
Search
Centro de documentos

CDN:Funciones de diccionario

Última actualización: Sep 04, 2026

Este tema describe la sintaxis, los parámetros y los valores de retorno de las funciones de diccionario. También se incluyen ejemplos de uso.

set

Utilice la función set para agregar o actualizar un par clave-valor en un diccionario.

Elemento

Descripción

Sintaxis

set(d, k, v)

Parámetros

  • d: El diccionario destino.

  • k: La clave que se va a agregar o actualizar. Tipo de dato: cualquiera.

  • v: El valor que se asociará con la clave. Tipo de dato: cualquiera.

Ejemplos

  • Ejemplo 1

    outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
    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-021bb34d****')
    set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')
    
    def echo_each(k, v, u) {
        s = concat('keys[', k, ']=', v)
        say(s)
    }
    foreach(inner_keys, echo_each, [])                                                                                                                                             
  • Ejemplo 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)
            }
        }

Valor devuelto

Esta función siempre devuelve true. Los ejemplos generan la siguiente salida:

  • Salida del ejemplo 1:

    keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
        keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
        keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
        keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****
  • El ejemplo 2 agrega el siguiente encabezado de respuesta:

    X-DSL-NESTED-DICT: inner dsl

get

Utilice la función get para recuperar el valor asociado a una clave específica en un diccionario.

Elemento

Descripción

Sintaxis

get(d, k)

Parámetros

  • d: El diccionario destino.

  • k: La clave del valor que se desea recuperar. Tipo de dato: cualquiera.

Ejemplo

outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
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-021bb34d****')
set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')

def echo_each(k, v, u) {
    s = concat('keys[', k, ']=', v)
    say(s)
}
foreach(inner_keys, echo_each, [])                                                                                                                                             

Valor devuelto

Si la clave existe, la función devuelve su valor correspondiente; de lo contrario, devuelve false. El ejemplo genera la siguiente salida:

keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
    keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
    keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
    keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****

foreach

La función foreach tiene los siguientes comportamientos:

  • Itera sobre cada par clave-valor del diccionario d y ejecuta la función de callback f.

  • La función de callback f debe tener la firma f(key, value, user_data).

  • El ciclo foreach() finaliza si la función de callback f() devuelve false.

Elemento

Descripción

Sintaxis

foreach(d, f, user_data)

Parámetros

  • d: El diccionario destino.

  • f: La función de callback que se ejecutará para cada par clave-valor.

  • user_data: Datos personalizados del usuario que se pasan a la función de callback. Este parámetro debe ser un diccionario.

Ejemplos

  • Ejemplo 1

    outer_keys=['e66fd4aa-f281-472f-b919-fc7e7474****', '66fee78d-1887-42ec-9119-a9b50b7f****']
    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-021bb34d****')
    set(inner_keys, 'zeus', '4747d33b-12b0-45e6-ac10-a8e191d6****')
    
    def echo_each(k, v, u) {
        s = concat('keys[', k, ']=', v)
        say(s)
    }
    foreach(inner_keys, echo_each, [])                                                                                                                                             
  • Ejemplo 2

    Este ejemplo imprime los primeros dos segmentos M3U8 y muestra cómo finalizar el ciclo 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:14065****\n')
        m3u8 = concat(m3u8, '#EXT-X-TARGETDURATION:10\n')
        m3u8 = concat(m3u8, '#EXTINF:8,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
        m3u8 = concat(m3u8, '#EXTINF:9,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
        m3u8 = concat(m3u8, '#EXTINF:10,\n')
        m3u8 = concat(m3u8, 'http://***.cn/cache/289_/seg0/index140651514_1406****.ts\n')
    
        lines = split(m3u8, '\n')
        u = []
        set(u, 'ts_cnt', 0)
        foreach(lines, echo_each, u)

Valor devuelto

Esta función siempre devuelve true. Los ejemplos generan la siguiente salida:

  • Salida del ejemplo 1:

    keys[1]=e66fd4aa-f281-472f-b919-fc7e7474****
        keys[2]=66fee78d-1887-42ec-9119-a9b50b7f****
        keys[dev]=243390eb-00b7-4551-a6b8-021bb34d****
        keys[zeus]=4747d33b-12b0-45e6-ac10-a8e191d6****
  • Salida del ejemplo 2:

    #EXTM3U8
        #EXT-X-MEDIA-SEQUENCE:140651513
        #EXT-X-TARGETDURATION:10
        #EXTINF:8,
        http://***.cn/cache/289_/seg0/index140651514_1406****.ts
        #EXTINF:9,
        http://***.cn/cache/289_/seg0/index140651514_1406****.ts

del

Elimina pares clave-valor de un diccionario (d). La tabla a continuación describe los detalles de esta función.

Elemento

Descripción

Sintaxis

del(d, k)

Parámetros

  • d: el nombre del diccionario.

  • k: la clave. Tipo de dato: cualquiera.

Ejemplos

var_a = []
set(var_a, 'note_a', 'note a info')
if get(var_a, 'note_a') {
    add_rsp_header('X-RESPOND-OUTPUT', 'found var_a key', true)
} else {
    add_rsp_header('X-RESPOND-OUTPUT', 'del var_a key', true)
}
del(var_a, 'note_a')
if get(var_a, 'note_a') {
    add_rsp_header('X-RESPOND-OUTPUT', 'found var_a key', true)
} else {
    add_rsp_header('X-RESPOND-OUTPUT', 'del var_a key', true)
}

Parámetros de respuesta

Devuelve un valor verdadero. Parámetro de respuesta para este ejemplo:

X-RESPOND-OUTPUT: found var_a key
X-RESPOND-OUTPUT: del var_a key