LUA - 为什么不需要使用 end 关键字进行引用?

local ply = LocalPlayer()

local frags = ply:Deaths()

print(frags)

为什么类似这样的代码不需要 end 关键字呢?是因为它只运行一次吗?

为什么在末尾加上 end 会抛出错误?

点赞
用户2858170
用户2858170

在 Lua 中,你只需要在开始某些东西的地方使用 end

缺少 end 或者有太多 end 都会触发错误。

在你的代码中随意放置一个 end 对解释器来说没有任何意义,因为它无法知道你试图结束什么。

请参考 Lua 5.3 参考手册 9:Lua 的完整语法 查看哪些表达式需要使用 end

stat ::=  ‘;’ |
       varlist ‘=’ explist |
       functioncall |
       label |
       break |
       goto Name |
       do block end |
       while exp do block end |
       repeat block until exp |
       if exp then block {elseif exp then block} [else block] end |
       for Name ‘=’ exp ‘,’ exp [‘,’ exp] do block end |
       for namelist in explist do block end |
       function funcname funcbody |
       local function Name funcbody |
       local namelist [‘=’ explist]
funcbody ::= ‘(’ [parlist] ‘)’ block end

你需要用它来结束 do 语句、for 循环、while 循环、条件语句和函数定义。

2020-04-27 06:11:56