Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 计算变量并在一行中分配给另一个变量_Lua - Fatal编程技术网

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,以便我的表单正确显示复选框。所以您的答案不起作用。是的,但当您使用该值显示复选框时,它不起作用。我会四处寻找,看看是否还有其他事情发生…@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时,页面不会显示复选框。