メインコンテンツへ移動

キーバリューを移動する (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)、失敗時は通常エラーの説明です。移動元のキーが存在しない場合、2 番目の戻り値は一定の文言とは限りません

説明​

キーを移動元の辞書から移動先の辞書へアトミックに移動します。
移動元と移動先が同じで、キー名も一致する場合、この関数はエラーをスローします。
成功し、移動先にもともと値がなかった場合は true, nil を返します。
移動元のキーが見つからない場合は false を返しますが、2 番目の戻り値は一定の文言とは限りません。

例​

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