lua学习笔记
2014-01-16 11:29
267 查看
一直都用lua,但其实很多细节并没掌握好啊,今天总结一下。
lua中的实例:当你使用lua模拟类的实例的时候,特别要注意变量的初始化。如果初始化是在一开始,那么
它就是静态变量,为所有类共享。
例如:
union = {
data = {},
}
function union:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
function union:init(data)
self.data = data or {}
if not self.data.unionNotice then
self.data.unionNotice = ''
end
end
以上是错误的例子,因为data是属于union的 你用new出来的o去使用共享的data,只会出现混乱,应该取消
data的一开始的初始化,改成
union = {
}
这样就ok了。
lua中的排序:lua中的排序有一个隐形的规则,甚至可以说是一个bug,当你的排序函数中有>=或者<=的时候
可能认为排序算法出错。比如你sort(a,b) 为true sort(b,a)也是true,那么就有概率出现这种错误,具体源代码我没去看,为了实现
稳定排序,建议不适用任何>=以及<=,也可以对==进行特殊处理。
lua中的模式:string.find("abc", "abc") 应该是有值的,但string.find("abc-dca", "abc-dca")却是nil,因为第二个参数是模式,在模式中
"-"是特殊含义字符,需要转义,转义为%:
local tmpStr = string.gsub(marketId, '%-', '%%%-')
if string.find(contractStr, tmpStr) then return true end
return false
这样就能解决这个问题了。
lua中的实例:当你使用lua模拟类的实例的时候,特别要注意变量的初始化。如果初始化是在一开始,那么
它就是静态变量,为所有类共享。
例如:
union = {
data = {},
}
function union:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
function union:init(data)
self.data = data or {}
if not self.data.unionNotice then
self.data.unionNotice = ''
end
end
以上是错误的例子,因为data是属于union的 你用new出来的o去使用共享的data,只会出现混乱,应该取消
data的一开始的初始化,改成
union = {
}
这样就ok了。
lua中的排序:lua中的排序有一个隐形的规则,甚至可以说是一个bug,当你的排序函数中有>=或者<=的时候
可能认为排序算法出错。比如你sort(a,b) 为true sort(b,a)也是true,那么就有概率出现这种错误,具体源代码我没去看,为了实现
稳定排序,建议不适用任何>=以及<=,也可以对==进行特殊处理。
lua中的模式:string.find("abc", "abc") 应该是有值的,但string.find("abc-dca", "abc-dca")却是nil,因为第二个参数是模式,在模式中
"-"是特殊含义字符,需要转义,转义为%:
local tmpStr = string.gsub(marketId, '%-', '%%%-')
if string.find(contractStr, tmpStr) then return true end
return false
这样就能解决这个问题了。
相关文章推荐
- Lua学习笔记(函数)
- Lua学习笔记之Expressions
- lua学习笔记_注释、基本数据类型、if语句
- Lua学习笔记一
- Lua学习笔记1
- Lua学习笔记(二)
- Lua 学习笔记(七) —— 协同程序(三)
- [LuaFrameWork]学习笔记(1)
- Lua学习笔记一
- lua学习笔记05
- Lua中文教程学习笔记 (1) 类型和值
- Lua学习笔记
- lua学习笔记11:lua中的小技巧
- 【lua学习笔记】第三章:表达式
- Lua学习笔记 第一章 开始
- lua学习笔记---Function(函数)
- Lua学习笔记--面向对象
- lua学习笔记 1 android 调用Lua, Lua脚本中启动Intent
- Lua入门系列----pil学习笔记之 Type and Values
- Lua学习笔记 入门的两个小程序