如何在Lua中用一条语句定义布尔键的稀疏数组?
Lua单语句定义布尔值为键的表
你原来通过多语句定义布尔值为键的表是正确的:
local Bool = {} Bool [false]='OFF' Bool [true]='ON'
但直接写local Bool = {false='OFF', true='ON'}不行,因为Lua会把这里的false和true当成字符串键(即"false"和"true"),而不是布尔值本身。
要在单语句里完成定义,需要用方括号把布尔值键括起来,让Lua解析为表达式求值后的键:
local Bool = {[false] = 'OFF', [true] = 'ON'}
原理很简单:Lua表构造器中,只有合法标识符(比如符合变量命名规则的字符串)才能直接作为键省略方括号,像布尔值这类非标识符类型的键,必须用[键]的形式明确指定,这样才会把括号内的值作为真正的键。
内容的提问来源于stack exchange,提问作者Rohit Gupta
相关产品推荐
相关产品推荐

