Chuyển tới nội dung chính

Di chuyển giá trị khóa (LCC.kvdb.dict.move_value)

Khai báo​

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

Tham số​

  • src_name
    Kiểu chuỗi, tên từ điển nguồn (không được rỗng, tối đa 256 byte)
  • src_key
    Kiểu chuỗi, tên khóa nguồn (phải là UTF-8 hợp lệ và không được rỗng)
  • dst_name
    Kiểu chuỗi, tùy chọn; tên từ điển đích, mặc định giống từ điển nguồn (không được rỗng, tối đa 256 byte)
  • dst_key
    Kiểu chuỗi, tùy chọn; tên khóa đích, mặc định giống tên khóa nguồn (phải là UTF-8 hợp lệ và không được rỗng)
  • timeout
    Kiểu số, tùy chọn; thời gian chờ yêu cầu (giây), mặc định là 60

Giá trị trả về​

  • ok
    Kiểu boolean, trả về true khi di chuyển thành công và false khi thất bại
  • old_value_or_err
    Kiểu chuỗi hoặc nil; khi thành công là giá trị cũ tại vị trí đích (nếu không tồn tại thì là nil), khi thất bại thường là mô tả lỗi; khi khóa nguồn không tồn tại, giá trị trả về thứ hai không được đảm bảo là một thông báo cố định

Mô tả​

Di chuyển khóa từ từ điển nguồn sang từ điển đích theo cách nguyên tử.
Nếu nguồn và đích giống nhau, đồng thời tên khóa cũng giống nhau, hàm sẽ phát sinh lỗi.
Khi thao tác thành công nhưng trước đó đích không có giá trị, trả về true, nil.
Khi không tìm thấy khóa nguồn, trả về false; giá trị trả về thứ hai không được đảm bảo là một thông báo cố định.

Ví dụ​

local ok, old = LCC.kvdb.dict.move_value("Đang chờ xử lý", "task#1", "Đang xử lý", "task#1")
if not ok then
error(old)
end