gpt4 book ai didi

lua - 将 Nil 参数传递给 Redis 上的 Lua 脚本?

转载 作者:IT王子 更新时间:2023-10-29 05:59:33 25 4
gpt4 key购买 nike

我有一个 lua redis 脚本,我想在 ARGV 中传递一些 nil 参数。我认为以下方法可行:

redis-cli EVAL "$(cat some_script.lua)" 3 key1 key2 key 3 nil nil 4

在这种情况下,我希望 ARGV[1] = ARGV[2] = nil。相反,它们似乎在 lua 中被设置为 'nil'(字符串),所以当我做类似的事情时:

if ARGV[1] then return ARGV[1] end

我收到 'nil' 返回给我。

我如何正确地将 nils 传递给 Lua?

最佳答案

不,命令行参数将始终是一个字符串,即使您传递这样的参数也是如此:

lua script.lua "test argument" "" "end"

你还是会得到

argv[1] = "test argument"
argv[2] = "" --empty string
argv[3] = "end"

在这种情况下,argv[4] = nil,但我认为这不是您想要的,因为程序期望末尾有一个非 nil 参数。

那么为什么不在脚本中设置一些标志字符串来代表 nil,例如,使用字符串“nil”作为标志,这样您就可以在脚本中进行测试:

if argv[1] ~= "nil" then return argv[1] end

关于lua - 将 Nil 参数传递给 Redis 上的 Lua 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16994351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com