• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua中实现StringBuffer功能

Lua中实现StringBuffer功能

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了lua string,lua string.format,lua string.find,lua string.sub,lua string.gsub等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在Lua中,字符串是一个常量,如果用字符串连接符“..”把2个字符串连接起来,例如first_str = first_str .. second_str,那么原来的first_str和second_str就会作为垃圾等待回收,first_str引用的是一个新的字符串,如果在程序里面有大量的字符串连接操作的话,性能会十分低下。Lua是一个很简洁的语言,他没有StringBuffer的实现,但是其实我们可以动手写一个简单的StringBuffer实现,来避免性能的问题。

首先定义一个叫StringBuffer的table,使得这个StringBuffer被调用的时候看起来像是面向对象的样子 :)
然后分别定义两个方法append和tostr,实现的原理就是:append用table来保存所有字符串,tostr把保存了字符串的table用concat转成真正的字符串。

StringBuffer = {}
StringBuffer.append =  function(t, str)
if t and str then
    table.insert(t, str)
end
end
StringBuffer.tostr =  function(t)
if t then
    return table.concat(t)
end
end
StringBuffer.new = function() return {} end
</div>

调用的时候大概如下,摘录了一段代码。。。

all_assets = StringBuffer.new()
for asset in ctx:allassets() do
    StringBuffer.append(all_assets, asset:id())
    StringBuffer.append(all_assets, ', ')
end
result = StringBuffer.tostr(all_assets)
print (result)
</div>

在Lua中实现这样的一个StringBuffer,既可以避免潜在的性能问题,又可以使得代码看起来更加易懂~好了,重构以前的代码去了。。。

</div>

您可能想查找下面的文章:

  • Lua中string.lower()使用指南
  • Lua中string.len()使用指南
  • Lua 数学库的所有函数功能作用一览
  • Lua中实现sleep函数功能的4种方法
  • Lua loadstring函数用法实例
  • lua中操作json数据的方法
  • LUA string库使用小结
  • Lua中的数学库总结
  • Lua中的string库(字符串函数库)总结
  • Lua中实现StringBuffer功能

相关文章

  • Lua教程(四):在Lua中调用C语言、C++的函数
  • Lua中的变量类型与语句学习总结
  • Lua和Nginx结合使用的超级指南
  • Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出
  • 浅谈Lua的面向对象特性
  • Lua table类型学习笔记
  • Lua中的异常处理pcall、xpcall、debug使用实例
  • Lua教程(二十):Lua调用C函数
  • 深入探究Lua中的解析表达式
  • Lua脚本调用外部脚本

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Lua中简单的错误处理实例
    • Lua编程示例(五): C语言对Lua表的读取和添加
    • Lua中的数学库总结
    • Lua极简入门指南(一):基础知识篇
    • Lua实现类继承
    • 让你的python代码更加pythonic(简练、明确、优雅)
    • Lua协同程序(COROUTINE)运行步骤分解
    • Lua中table库函数方法介绍
    • Lua loadstring函数用法实例
    • Lua中的table学习笔记

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有