- 浏览: 762028 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
Lua 中有八种基本类型: nil, boolean, number, string, function, userdata, thread, and table.
Nil 类型只有一种值 nil ,它的主要用途用于标表识和别的任何值的差异
Boolean 类型只有两种值:false 和 true。 nil 和 false 都能导致条件为假
userdata 类型用来将任意 C 数据保存在 Lua 变量中。 这个类型相当于一块原生的内存,除了赋值和相同性判断,Lua 没有为之预定义任何操作。 然而,通过使用 metatable (元表) ,程序员可以为 userdata 自定义一组操作.userdata 不能在 Lua 中创建出来,也不能在 Lua 中修改。这样的操作只能通过 C API。 这一点保证了宿主程序完全掌管其中的数据。
thread 类型用来区别独立的执行线程,它被用来实现 coroutine (协同例程).不要把 Lua 线程跟操作系统的线程搞混。 Lua 可以在所有的系统上提供对 coroutine 的支持,即使系统并不支持线程。
table 类型实现了一个关联数组。也就是说, 数组可以用任何东西(除了nil)做索引,而不限于数字。 table 可以以不同类型的值构成;它可以包含所有的类型的值(除 nil 外)。 table 是 lua 中唯一的一种数据结构;它可以用来描述原始的数组、符号表、集合、 记录、图、树、等等。 用于表述记录时,lua 使用域名作为索引。 语言本身采用一种语法糖,支持以 a.name 的形式表示 a["name"]。
跟索引一样, table 每个域中的值也可以是任何类型(除 nil外)。 特别的,因为函数本身也是值,所以 table 的域中也可以放函数。 这样 table 中就可以有一些 methods 了
Nil 类型只有一种值 nil ,它的主要用途用于标表识和别的任何值的差异
Boolean 类型只有两种值:false 和 true。 nil 和 false 都能导致条件为假
userdata 类型用来将任意 C 数据保存在 Lua 变量中。 这个类型相当于一块原生的内存,除了赋值和相同性判断,Lua 没有为之预定义任何操作。 然而,通过使用 metatable (元表) ,程序员可以为 userdata 自定义一组操作.userdata 不能在 Lua 中创建出来,也不能在 Lua 中修改。这样的操作只能通过 C API。 这一点保证了宿主程序完全掌管其中的数据。
thread 类型用来区别独立的执行线程,它被用来实现 coroutine (协同例程).不要把 Lua 线程跟操作系统的线程搞混。 Lua 可以在所有的系统上提供对 coroutine 的支持,即使系统并不支持线程。
table 类型实现了一个关联数组。也就是说, 数组可以用任何东西(除了nil)做索引,而不限于数字。 table 可以以不同类型的值构成;它可以包含所有的类型的值(除 nil 外)。 table 是 lua 中唯一的一种数据结构;它可以用来描述原始的数组、符号表、集合、 记录、图、树、等等。 用于表述记录时,lua 使用域名作为索引。 语言本身采用一种语法糖,支持以 a.name 的形式表示 a["name"]。
跟索引一样, table 每个域中的值也可以是任何类型(除 nil外)。 特别的,因为函数本身也是值,所以 table 的域中也可以放函数。 这样 table 中就可以有一些 methods 了
print(type(a)) a = 10 print(type(a)) print("\n") a = true print(type(a)) print(type(print)) c = 123 print(c) d = string.format(c) print(d) nil number boolean function 123 123
发表评论
-
mac nginx启动
2021-01-15 10:10 378brew services start nginx 1.1 ... -
nginx与lvs的异同
2017-11-30 11:51 912http://blog.csdn.net/BuquTianya ... -
lua weak表与gc
2017-11-29 09:56 557local a = {} local b = {} s ... -
lua single-method
2017-11-29 09:49 516local function newObject (val ... -
lua ffi
2017-11-16 11:33 601testlib.c #include <stdio. ... -
lua unpack
2017-11-09 11:07 388unpack接受一个数组作为输入参数,返回数组的所有元素。被用 ... -
resty thread
2017-07-07 14:35 366local t = {} local functio ... -
resty 正则
2017-07-04 17:32 455local m, err = ngx.re.match(& ... -
Nginx Lua脚本执行顺序
2017-06-15 09:11 834[img] [/img] -
ngx timer
2017-05-20 08:11 459local delay=3 local handle ... -
openresty文件自适应
2017-05-18 14:14 484location ~ ^/([-_a-zA-Z0-9/]+ ... -
lua_shared_dict
2017-05-18 12:01 22711.定义一块名为my_cache的共享内存空间,内存大小为si ... -
lua 协程(coroutine)
2016-11-30 10:34 517local function f(a) local ... -
lua loadstring
2016-11-29 10:08 820loadstring 不会有边界效应产生,他仅仅编译 chun ... -
lua book
2016-05-05 10:26 450http://lua.ren/topic/157/lua书 -
lrucache
2016-04-19 16:21 605local _M = {} --local lruc ... -
openresty资料
2016-03-15 09:57 857视频 http://study.163.com/course/ ... -
openresty缓存
2016-03-09 15:12 1118shared dict:这个cache是nginx所有work ... -
cjson
2016-03-07 10:42 559local json = require("cj ... -
nginx使用lua文件
2016-03-02 10:13 679location /test_var { con ...
相关推荐
包含 LUA取参数数目、LUA取参数类型、LUA取参数值、LUA加返回值、LUA扩展栈。后续版本可能会根据需要进行适当的扩充。LUA(数据类型)。LUA虚拟机,提供对LUA代码进行编译/解释执行的功能。LUA类库常量(常量)。LUA...
在Java中,Lua值可以通过LuaState的API转换为Java对象,反之亦然。例如,从Lua传递一个表到Java: ```lua local table = {key1="value1", key2="value2"} android.someMethod(table) ``` 在Java端接收: ```java ...
5. 传递数据:C++与Lua之间可以传递不同类型的数据。使用`lua_pushnumber`、`lua_pushstring`等函数将C++数据推送到Lua栈,使用`lua_tonumber`、`lua_tostring`等函数从Lua栈获取数据。 6. 清理:调用`lua_settop(L...
3. 布尔(boolean):布尔类型是Lua提供的一个简单的类型,它只有两个可能的值:"true"和"false"。在Lua中,只有false和nil被视为false,其他的值,包括0和空字符串都被视为true。 4. 函数(function):函数在Lua中是...
- **Function**: 函数是 Lua 中的一种值类型,可以像其他值一样被赋值给变量、作为参数传递、作为返回值返回。 - **Userdata**: 用户数据类型用于将 C 语言的数据结构封装成 Lua 可访问的形式。 - **Thread**: 线程...
5. **lua_gettop() / lua_push*() / lua_to*()**:在C代码中获取和设置Lua栈上的值。`lua_gettop()`用于获取栈顶索引,`lua_push*()`系列函数用于将C数据推入栈,`lua_to*()`系列函数用于从栈中取出数据。 二、Lua...
在Unity3D环境中,可以将这些库集成到项目中,通过C#接口与Lua交互。 2. 自定义编码解码:如果你不想依赖外部库,也可以自行编写解码和编码函数。对于int64,可以将其转换为字符串,然后在Lua中进行处理。例如,你...
8. **lua_to*()**系列函数(如lua_tointeger(), lua_tostring()等):将栈上的值转换为C类型。 9. **lua_push*()**系列函数:将C类型的数据推送到Lua栈上,以便作为参数传递或作为返回值。 以上是Lua与C API互调的...
其中`lua_CFunction`定义了Lua中函数指针的类型,接受一个`lua_State`类型的参数,并返回一个整数值。这是Lua与C交互的一个基本点,开发者需要按照这个约定来编写C函数。 **3.2 错误处理** 由于Lua中的函数是在C中...
4. **数据类型转换**: Lua和C的数据类型不同,所以需要使用`lua_tonumber`、`lua_tostring`等函数将Lua值转换为C类型,反之亦然。 5. **错误处理**: 在C与Lua交互时,理解并处理错误至关重要。`lua_gettop`、`lua_...
数据类型包括数字、字符串、布尔值、nil以及表。控制结构如if语句、while和for循环等,与大多数编程语言相似,但更简洁。函数是第一类对象,可以作为参数传递,也可以作为返回值。表是Lua的通用数据结构,可以用来...
#### 三、类型与值 - **Nil**:表示空值,常用于表示不存在的数据。 - **Booleans**:布尔类型,有两个可能的值:`true` 和 `false`。 - **Numbers**:数值类型,包括整数和浮点数。 - **Strings**:字符串类型,...
- `table`: 关联数组,支持使用除`nil`和`NaN`之外的所有Lua值作为索引。 - **数值类型**: 数值类型有两种内部表现形式,即整数和浮点数。Lua的标准实现使用64位整数和双精度浮点数,但可以配置为使用32位整数和单...
LuaBridge提供了一套自动转换机制,能够将Lua的值(如数字、字符串、表格等)转换为Objective-C的对象,反之亦然。 4. **对象封装**: 对象在Lua和Objective-C之间的传递需要特别处理。LuaBridge允许创建Lua的“ ...
例如,`lua_pcall()`函数用于执行已加载的脚本,如果发生错误,它会返回非零值。 8. **关闭Lua状态机**:当不再需要与Lua交互时,记得通过`lua_close(L)`释放资源。 以上就是C++与Lua交互的基本流程。在实际项目中...
《LuaAction:C++与Lua交互的高效实践》 在软件开发中,有时我们需要将脚本语言如Lua与系统级编程语言如C++相结合,以实现动态行为和高性能计算的结合。在这种场景下,LuaAction提供了一种高效的方法,允许C++代码...
2. JSON没有内建的true/false值,它们在Lua中对应于boolean类型的true/false。 3. JSON的null值在Lua中通常转换为nil。 使用这个脚本,开发者可以将JSON格式的配置文件或网络请求响应转换为可以直接在Lua环境中使用...
3. **解析和序列化**: Lua代码可以通过这些生成的模块创建protobuf消息对象,设置字段值,然后序列化成二进制数据。反之,也可以从接收到的二进制数据反序列化成Lua对象。 4. **兼容性**: lua-pb库通常会努力保持与...
Lua是一种动态类型语言,其值可以是六种基本类型之一:nil、boolean、number、string、userdata和function,以及两种复合类型:table和thread(协程)。不同类型的值在Lua中有不同的表示方式和行为。 2. 环境和全局...