Lua 计算变量并在一行中分配给另一个变量
我有一个作为字符串从数据库返回的变量。我将其转换为一个数字,然后进行如下测试:Lua 计算变量并在一行中分配给另一个变量,lua,Lua,我有一个作为字符串从数据库返回的变量。我将其转换为一个数字,然后进行如下测试: if tonumber(v.active) == 1 then elements.active.value = true else elements.active.value = false end elements.active.value中的值用于显示复选框。我想知道是否有一种方法可以把这一切合并成一个声明 编辑1 我使
if tonumber(v.active) == 1 then
elements.active.value = true
else
elements.active.value = false
end
elements.active.value中的值用于显示复选框。我想知道是否有一种方法可以把这一切合并成一个声明
编辑1
我使用lua布尔值来设置复选框,因此不能使用1。你必须使用真/假。
我对是否可以使用1或true来设置值不太感兴趣。我更感兴趣的是保持逻辑不变,但要简化
我真正想要的是在php中可以做的事情,比如:
max = array_key_exists ('max', $options) ? $options['max'] : 0;
它将使用$options['max']值或0,具体取决于评估 像这样:
elements.active.value = tonumber(v.active) == 1
因为像==
这样的关系运算符的结果是布尔的,所以您在代码段中分配给元素.active.value
的就是布尔值
Lua中的关系运算符是
== ~= < > <= >=
==~=<>=
这些运算符总是导致false
或true
像这样:
elements.active.value = tonumber(v.active) == 1
因为像==
这样的关系运算符的结果是布尔的,所以您在代码段中分配给元素.active.value
的就是布尔值
Lua中的关系运算符是
== ~= < > <= >=
==~=<>=
这些运算符总是导致false
或true
我猜我以为lua会把“真”和1区别对待。也许是个错误的假设。现在开始测试。好的。。。所以我绝对不能只用1。我必须计算它,将1转换为true,以便我的表单正确显示复选框。所以您的答案不起作用。是的,但当您使用该值显示复选框时,它不起作用。我会四处寻找,看看是否还有其他事情发生…@dot
true
与1
不同。但是这里表达式tonumber(v.active)==1
的值为true
或false
。我正在将此布尔值分配给元素.active.value
。你是怎么测试的?试试这个:a=1;v=a=1;print(v)
,它不输出true
?Yu,我想我在我使用的框架中发现了一个bug。当我将vaue设置为“true”并查看源代码时,html看起来与我将值设置为1时完全相同。但是当您只使用1时,页面不会显示复选框。我想我假设lua会将“true”视为与1不同。也许是个错误的假设。现在开始测试。好的。。。所以我绝对不能只用1。我必须计算它,将1转换为true,以便我的表单正确显示复选框。所以您的答案不起作用。是的,但当您使用该值显示复选框时,它不起作用。我会四处寻找,看看是否还有其他事情发生…@dottrue
与1
不同。但是这里表达式tonumber(v.active)==1
的值为true
或false
。我正在将此布尔值分配给元素.active.value
。你是怎么测试的?试试这个:a=1;v=a=1;print(v)
,它不输出true
?Yu,我想我在我使用的框架中发现了一个bug。当我将vaue设置为“true”并查看源代码时,html看起来与我将值设置为1时完全相同。但是当您仅使用1时,页面不会显示复选框。