lua 5.1 分支语句 bytecode 的生成(二)
上篇我们谈到了 IF 语句的 bytecode 生成,今天来谈谈布尔表达式与短路求值。 考虑到下面的表达式 a = a or 1024 其生成的字节码为 1 [1] GETGLOBAL 0 -1 ; a 2 [1] TEST 0 0 1 3 [1] JMP 1
上篇我们谈到了 IF 语句的 bytecode 生成,今天来谈谈布尔表达式与短路求值。 考虑到下面的表达式 a = a or 1024 其生成的字节码为 1 [1] GETGLOBAL 0 -1 ; a 2 [1] TEST 0 0 1 3 [1] JMP 1
本文只对 IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END 语法的字节码生成过程进行描述。 生成的结果 首先我们看下面的示例,仅为演示: local cond1 = true local cond2 = true if cond1 then cond1 = false elseif cond2 then cond2 =