Saltar al contenido principal

Mover un valor de clave (LCC.kvdb.dict.move_value)

Declaración​

ok, old_value_or_err = LCC.kvdb.dict.move_value(src_name, src_key, dst_name?, dst_key?, timeout?)

Parámetros​

  • src_name
    Tipo string; nombre del diccionario de origen (no vacío, máximo 256 bytes)
  • src_key
    Tipo string; nombre de la clave de origen (debe ser UTF-8 válido y no vacío)
  • dst_name
    Tipo string, opcional; nombre del diccionario de destino, igual al de origen de forma predeterminada (no vacío, máximo 256 bytes)
  • dst_key
    Tipo string, opcional; nombre de la clave de destino, igual a la de origen de forma predeterminada (debe ser UTF-8 válido y no vacío)
  • timeout
    Tipo numérico, opcional; tiempo de espera de la solicitud (segundos), predeterminado 60

Valores devueltos​

  • ok
    Tipo booleano; devuelve true si el movimiento tiene éxito y false si falla
  • old_value_or_err
    Tipo string o nil; si tiene éxito, es el valor anterior de la posición de destino (nil si no existía); si falla, normalmente contiene la descripción del error; si la clave de origen no existe, el segundo valor devuelto no tiene un texto fijo garantizado

Descripción​

Mueve atómicamente la clave del diccionario de origen al de destino.
Si el origen y el destino, incluida la clave, son idénticos, la función lanza un error.
Si tiene éxito pero antes no había ningún valor en el destino, devuelve true, nil.
Si no se encuentra la clave de origen, devuelve false; el segundo valor devuelto no tiene un texto fijo garantizado.

Ejemplo​

local ok, old = LCC.kvdb.dict.move_value("待处理", "task#1", "进行中", "task#1")
if not ok then
error(old)
end