返回 f(x) 和返回 (f(x)) 的差异

use*_*456 6 lua


return f(x)
和有什么区别
return (f(x))

最好是在逻辑分析的意义上

Ego*_*off 8

Lua 中的函数可以返回任意数量的值(0,1,2,...)

return f(x)表示“计算 f(x) 并返回函数返回的所有值”
return (f(x))表示“计算 f(x) 并仅返回函数返回的第一个值,nil如果没有返回值则返回”

这就是为什么return f(x)可以编译为尾调用但return (f(x))不能。