再看书,看到说计算字符串长度的时候推荐使用#,而不推荐string.len(),这是为什么呢,上网找了好久也没找到资料。要去看源码吗?
因为string.len()需要先查找string再找其下的len,再传参再调用,至少需要4条 lua vm bytecode;而#直接被翻译为LEN指令,一条指令就可以算出来。
string.len()
string
len
#
LEN
1 回答752 阅读
3 回答3.2k 阅读✓ 已解决
1 回答10.8k 阅读✓ 已解决
1 回答5.1k 阅读✓ 已解决
1 回答8k 阅读✓ 已解决
2 回答11.3k 阅读✓ 已解决
因为
string.len()
需要先查找string
再找其下的len
,再传参再调用,至少需要4条 lua vm bytecode;而#
直接被翻译为LEN
指令,一条指令就可以算出来。