【问题标题】:Lua code to check and print whether a number is even or odd用于检查和打印数字是偶数还是奇数的 Lua 代码
【发布时间】:2021-02-02 00:37:06
【问题描述】:

我无法弄清楚一个练习题,它要求创建一个 lua 文件以使用 redis 查询来检查一个数字是偶数还是奇数。

我在lua文件中写的代码是这样的

local myval = 94

if (myval % 2 == 0 ) then
    redis.call()
else
    redis.call()
end

现在作为陈述的一部分,问题如下所示

声明一个名为 myval 的局部变量并为其赋值 94。维持 键值作为数字。

我无法理解该声明的第二部分。我应该如何在lua文件中设置键值以及局部变量声明。

将键值保持为数字。

你能帮我理解一下吗?这里需要做什么?

最后,我的代码会是这个样子,设置key-value取决于myval号。

local myval = 94
    
    if (myval % 2 == 0 ) then
        redis.call(‘set’, KEYS[1], ARGV[1])
    else
        redis.call(‘set’, KEYS[1], ARGV[1])
    end

【问题讨论】:

  • 最好问问谁给你这个练习任务。那些话真的不清楚。
  • 我认为您在问题中遗漏了一些内容。在最后一段代码中,如果您在then 子句中执行与else 子句中完全相同的操作,则肯定有问题 - 如果两个部分相同,则执行if 毫无意义!
  • @MarkSetchell,是的,else 子句将为键设置不同的值。在这种情况下,我将其设置为“奇数”,在 if 条件下,我将其设置为“偶数”。我只是不清楚这些词。 “将键值保持为数字”。所以基本上想知道在 lua 文件中声明变量时是否可以通过任何 eval 操作设置键值。以便它可以通过 Redis 脚本执行。

标签: redis lua


【解决方案1】:

如果没有更多细节,很难说出您要完成的工作。
这应该检索存储在第 94 个位置的奇数或偶数值。
可能需要翻转 ARGV 号码;还没有看到数据库中的内容或预期的输出。

local myval = 94

if ( myval %2 == 0 ) then  --  even
    print(  redis .call( ‘get’, KEYS[myval], ARGV[1] )  )
else
    print(  redis .call( ‘get’, KEYS[myval], ARGV[2] )  )
end

【讨论】:

    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    相关资源
    最近更新 更多