【发布时间】:2018-06-21 06:05:17
【问题描述】:
我正在从在线书籍中学习 lua 编程。 它讨论了数组的字符串索引
如果索引是字符串,您可以创建单个索引 将两个索引与中间的字符连接起来以分隔 他们。例如,您可以使用字符串索引 s 和 t 的代码为 m[s..':'..t],前提是 s 和 t 都没有 包含冒号(否则,像 ("a:", "b") 和 ("a", ":b") 这样的对 将折叠成单个索引“a::b”)。如有疑问,您可以使用 像 `\0' 这样的控制字符来分隔索引。
https://www.lua.org/pil/11.2.html
我不明白索引“a::b”有什么问题。 “a:b”和“a::b”有什么区别。 背后的诀窍是什么?
【问题讨论】:
-
("a:", "b")和("a", ":b")这两个对将产生相同的索引。但是您只有一个存储空间:m["a::b"]。那是一次碰撞。 -
我认为你是对的。歧义问题是关键。