Lua3

lua string performance and using table

This project is maintained by wangfakang

对lua中字符串类型的认识:

  首先在lua中其字符串的处理都是一种引用的方式,比如有两个字符串变量的值是一样的则在内存中是指向同一个字符串的, 相当于引用计数.而且在lua中是不允许直接对字符串进行修改的,相当于一个常量区的.此时只可以在新的位置进行开一个 空间然后进行旧值拷贝什么的工作.
    方法想必大家对lua中的字符串连接都知道吧[十分简单".."字符串之间使用两个点号就可以进行连接了].

传统的方式:

 

  1 local t = ""
  2 local test = {"hello","world","haha"}
  3 for j,line in ipairs(test) do
  4     t = t..line
  5 end 
  6 print(t)

改善的方式:

   

 
 1 local t = {}
  2 local test = {"hello","world","haha"}
  3 for j,line in ipairs(test) do
  4     t[#t + 1] = line
  5 end 
  6 s = table.concat(t)
  7 
  8 print(s)

当使用第二种方案时候,在处理很多的时候其性能还是提升了不少.   

欢迎一起交流学习

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

Thx

Author