我不明白你为什么会提到字符串连接是“右结合”。连接是关联的,所以我看不出 Lua 评估它的顺序有多重要。我错过了什么吗?
例如a^(b^c) == (a^b)^c
,通常不正确,但确实如此a..(b..c) == (a..b)..c
。我的意思是假设如果你将 concat 元方法用于一些行为不像连接的东西,那会很重要,但我不明白为什么有人会想要这样做。
我不明白你为什么会提到字符串连接是“右结合”。连接是关联的,所以我看不出 Lua 评估它的顺序有多重要。我错过了什么吗?
例如a^(b^c) == (a^b)^c
,通常不正确,但确实如此a..(b..c) == (a..b)..c
。我的意思是假设如果你将 concat 元方法用于一些行为不像连接的东西,那会很重要,但我不明白为什么有人会想要这样做。
你似乎已经回答了你自己的问题,除了你结束了它,but I don't see why anyone would want to do that.
您认为对该功能的适当使用并不重要。Lua 是一种编程语言。程序员最喜欢的莫过于滥用语言中的一个特性来做一些非预期的事情。
说它是正确的联想只是向读者提供信息。你如何处理这些信息取决于你。
关于为什么 .. 关联性是 right2left 这里的一些信息http://lua-users.org/wiki/AssociativityOfConcatenation
它并不能完全解释“速度优化”是什么。我知道他/他们带有连接链接,但这也可以用于从左到右的关联性......