Ir para o conteúdo principal

Mover um par de chave-valor (LCC.kvdb.dict.move_value)

Declaração​

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; nome do dicionário de origem (não vazio, no máximo 256 bytes)
  • src_key
    Tipo string; nome da chave de origem (UTF-8 válido e não vazio)
  • dst_name
    Tipo string, opcional; nome do dicionário de destino, por padrão igual ao de origem (não vazio, no máximo 256 bytes)
  • dst_key
    Tipo string, opcional; nome da chave de destino, por padrão igual ao da chave de origem (UTF-8 válido e não vazio)
  • timeout
    Tipo number, opcional; tempo limite da solicitação (em segundos), padrão 60

Valor de retorno​

  • ok
    Tipo boolean; retorna true quando a movimentação tem sucesso e false quando falha
  • old_value_or_err
    Tipo string ou nil; em caso de sucesso, valor original no destino (nil se não existir); em caso de falha, normalmente a descrição do erro. Se a chave de origem não existir, a segunda saída não tem uma mensagem fixa garantida

Descrição​

Migra atomicamente a chave do dicionário de origem para o dicionário de destino.
Se a origem e o destino forem iguais e os nomes das chaves coincidirem, a função lançará um erro.
Quando tem sucesso e o destino não tinha valor, retorna true, nil.
Se a chave de origem não for encontrada, retorna false; a segunda saída não tem uma mensagem fixa garantida.

Exemplo​

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