coroutine是LUA中类似线程的东西,但是它其实和fiber更相似。也就是说,它是一种非抢占式的线程,
double类型 来实现数字。
字符串是常量。
字符串是常量。
数据结构:
table,function,userdata,coroutine
userdata是一个内存块。
lua是单线程的。
table,function,userdata,coroutine
userdata是一个内存块。
lua是单线程的。
特征:
1)lua使用double作为唯一的数字类型。
2)Table、String类型 都是属于引用的。
所以记得被引用修改了,那么其他地方也会修改。
3)Table分为数组、Hash两部分。
a = {100,"hello",300} 当做数组来用。
ipairs 只遍历数组部分;没有标记下标的默认给数字。
3)最大诱惑:热更新。
4)module(模块名) 类似namespace。
模块定义、模块加载。
5)dofile,热更新。 其实用required也是可以配置热更新的。
6)标准库
math,table,string,io,os,debug
7)不是多线程
8)面向对象
xx.foo() xx:foo()
9)使用栈来实现虚拟机和宿主程序间的书籍传递。
c调用lua,自己维护。
lua调用c,本来lua中就没有所谓维护的。
10)gc回收的算法分析。
1)lua使用double作为唯一的数字类型。
2)Table、String类型 都是属于引用的。
所以记得被引用修改了,那么其他地方也会修改。
3)Table分为数组、Hash两部分。
a = {100,"hello",300} 当做数组来用。
ipairs 只遍历数组部分;没有标记下标的默认给数字。
3)最大诱惑:热更新。
4)module(模块名) 类似namespace。
模块定义、模块加载。
5)dofile,热更新。 其实用required也是可以配置热更新的。
6)标准库
math,table,string,io,os,debug
7)不是多线程
8)面向对象
xx.foo() xx:foo()
9)使用栈来实现虚拟机和宿主程序间的书籍传递。
c调用lua,自己维护。
lua调用c,本来lua中就没有所谓维护的。
10)gc回收的算法分析。
编程守则
尽量使用local
尽量使用for 循环
尽量使用注册表 reference
减少lua和c之间的穿越。
尽量使用local
尽量使用for 循环
尽量使用注册表 reference
减少lua和c之间的穿越。