Перейти к основному содержимому

Перемещение значения ключа (LCC.kvdb.dict.move_value)

Сигнатура​

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

Параметры​

  • src_name
    Строка, имя исходного словаря (непустое, максимум 256 байт)
  • src_key
    Строка, имя исходного ключа (корректный UTF-8 и непустой)
  • dst_name
    Строка, необязательный; имя целевого словаря, по умолчанию совпадает с исходным (непустое, максимум 256 байт)
  • dst_key
    Строка, необязательный; имя целевого ключа, по умолчанию совпадает с исходным (корректный UTF-8 и непустой)
  • timeout
    Число, необязательный тайм-аут запроса (секунды), по умолчанию 60

Возвращаемое значение​

  • ok
    Логическое значение: при успешном перемещении true, при сбое false
  • old_value_or_err
    Строка или nil; при успехе — прежнее значение в целевой позиции (при отсутствии — nil), при сбое обычно описание ошибки; при отсутствии исходного ключа второй результат не имеет фиксированного текста

Описание​

Атомарно переносит ключ из исходного словаря в целевой.
Если источник и цель совпадают и имена ключей одинаковы, функция выдаёт ошибку.
При успехе, если в цели не было значения, возвращает true, nil.
Если исходный ключ не найден, возвращается false; второй результат не имеет фиксированного текста.

Пример​

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