问: 我调用了test模块中的del_env函数,可是main文件里的print并没有消失。 -- test.lua local test = {} function test.del_env () _ENV = nil end return test -- main.lua local test
转载
2017-08-15 09:54:00
64阅读
2评论
Lua中base库里面的接口都是全局可见的,我在 全局环境 一篇里面已经谈到了。在lua5.2中base库增加了2个全局变量和23个函数,这些都可以在lbaselib.c里面找到。
首先增加了两个变量:
_G = 当前lua中的全局环境
_VERSION = LUA_VERSION
其中LUA_VERSION是一个宏,在每个版本的Lua中都不一样,定义在lua.h中
可以看到如果我用
原创
2013-01-13 16:21:36
3292阅读
Lua的实现是非常简单而且清晰的,我决定整理一下最近学到的lua知识,我想先从lua的环境开始谈起。
环境是个什么概念呢?在lua中,大部分的结构都可以用table来表达,环境也不例外,环境指的是一张表,这张表里保存这能够使用的全局变量。这样说还是不太清晰,接着看就会明白了。
全局环境是什么呢?Lua有一个大的环境,即 _G 环境。这个是全局环境,保存着全局的变量。可以通过这行代码打印出 _G
原创
2013-01-03 21:03:23
3700阅读
Lua5.2中的math库里面包含了三角函数、指数和对数函数、取整函数、max和min、随机数函数,以及变量 pi 和 huge。这些定义可以在lua源码中lmathlib.c中找到。下面我按我实际使用中频率的高低进行了排序列出,这样方便查找。
math.pi = PI --圆周率
math.huge = HUGE_VAL
原创
2013-01-02 22:57:17
10000+阅读
首先说一下5.3貌似没有这个问题, 可是眼下最新版的luasocket 3.0 rc1仅仅能支持5.2, 5.3调用的话程序会崩溃(不知道是不是我没配置好) 出现这个问题的解决办法, 想必网上有非常多资料了, 就是C model的静态和动态链接的问题, lua5.2不支持 >= 2的静态链接, 而假
转载
2018-02-27 17:01:00
201阅读
经典例题1.if嵌套1.用户输入账号
2.用户输入密码
3.判断用户的账号是不是alex
4.如果账号是alex在继续判断密码是不是alexdsb
5.账号和密码都正确提示用户alex就是一个dsb
6.如果账号正确密码错误提示密码错误
7.如果账号错误提示账号错误user = input("请输入账号:")
pwd = input("请输入密码:")
if user == "alex":
在嵌入式linux上,想最简单方便的使用网络资源,如Ftp,http,和socket,用c实现容易吗?解析json,用c实现容易吗?不如用dkjson.lua这个库。所以,使用lua脚本强大的网络模块,能给嵌入式linux应用开发带来不少方便。且lua很容易和c集成到一块儿,实现一些强大功能。以下记录下移植luasocket网络库到嵌入式linux开发板的过程:首先下载源码,地址在...
原创
2021-08-31 10:24:34
1014阅读
Lua语言具有很强的嵌入优势,可跨平台编译、运行,使用Lua语言可高效开发Cocos2d-x游戏。你看到的很多国产优秀教程都是从
原创
2022-12-14 00:55:28
140阅读
2评论
这次简单的补充一下前面类型部分剩下的东西。
首先我们要知道当我们想为lua来编写扩展的时候,有时候可能需要一些全局变量。可是这样会有问题,这是因为这样的话,我们就无法用于多个lua状态(也就是new 多个state).
于是lua提供了三种可以代替全局变量的方法。分别是注册表,环境变量和upvalue。
其中注册表和环境变量都是table。而upva
转载
2024-05-09 16:25:49
111阅读
这次紧接着上次的,将gc类型的数据分析完毕。
谢谢[url=http://www.zhuzhaoyuan.com]老朱[/url]同学的指正,这里CClosure和LClosure理解有误.
先来看闭包:
可以看到闭包也是会有两种类型,这是因为在lua中,函数不过是一种特殊的闭包而已。
[color=red]更新:这里CClosure表示是c函数,
转载
2024-06-28 07:46:45
61阅读
centos 5.2构建源码树,实际上只需yum -y install kernel-devel然后查看/lib/modules/2.6.18-92.el5/build对应的软连接路径:../../../usr/src/kernels/2.6.18-92.el5-i686将/usr/src/kernels/2.6.18-404.e15-i686文件夹改名为2.6.18-92.e15-i686,然后
原创
2015-09-19 23:26:24
784阅读
参考博客 Spring 5.2.x 源码环境搭建(Windows 系统环境下) 使用Git,从码云上clone项目到本地,修改完之后提交项目到码云 git 如何创建一个分支 编译Spring5.0.x源码之一路坎坷,你经历过绝望吗? 1. 下载源码 1. 源码下载 码云镜像仓库:点此 git clo ...
转载
2021-08-18 20:03:00
284阅读
2评论
由于没学习和使用过Cocos2D,但出于工作需要,后面将要学习与使用Cocos2D。 第一次使用修改过的Cocos的时候遇到一些Lua文件是加过密的,不能看到源码,但是又可以正常的被Cocos读取执行,通过对Lua的调试可以看到读取到内存中的源码,由于调试工具的限制,无法直接将这些源码保存到磁盘,当然有一个笨办法,就是将能看到源码的文件一个一个地保存到磁盘,在没有更好的办法之前,也只能这样了。这样
转载
2024-04-18 16:06:55
134阅读
1. 栈定义简单的图2.栈元素TValue定义说明3.GC对象定义说明4.gc链表定义5.栈和gc链表的关系答疑解惑总结 这是这个gc系列的第二篇,这一篇主要讲GC用到的数据结构,有助于理解gc的,所以放在前面1. 栈栈就是我们平时写代码接到的lua_State。在实现上是用一个数组实现的。每个成员类型是TValue,看下文详细介绍。这里不打算详细介绍栈的结构和内容,只会介绍和gc相关的一些内容
转载
2024-04-17 10:22:32
84阅读
工作后,整个人已经比較松懈了。尽管一直在看lua的源代码。可是一直是比較零碎的时间,没有系统的整理,所以还是收获不多。由于近期工作也不是非常忙了,就想整理下lua的源代码学习的笔记。加深下印象,并分享给大家。先说下这系列bolg我会每周更新2-3篇,没有顺序的这些文章都是自己的浅薄的理解。有什么错误,还请各位拍砖赐教。1.关于c语言函数的声明相信大家都知道接口的重要,在lu
转载
2024-04-21 08:43:44
40阅读
对于开发来说需要有好的生态开发库来辅助我们快速开发,而 Lua 中也有大多数我们需要的第三方开发库如 Redis、Memcached、Mysql、Http 客户端、JSON、模板引擎等。一些常见的 Lua 库可以在 github 上搜索,https://github.com/search?utf8=%E2%9C%93&q=lua+resty。Redis 客户端lua-resty-redis
转载
2024-04-17 20:50:16
52阅读
研究生即将毕业,答辩完成后,这几天有些时间。开始写一些自己的东西,记录自己的学习历程。 --前言本着学习和交流的原则,本文的内容仅供参考,而不是权威版本,如有任何问题,欢迎指出。 --声明 跨专业考计算机研究生,至今三年已
转载
2024-08-03 16:09:26
32阅读
目录一、实战篇 - Lua的安装和Makefile二、实战篇 - Lua的API使用三、实战篇 - C语言中实现动态调用Lua一、实战篇 - Lua的安装和Makefile前面的篇章,我们详细的介绍了整个Lua语言的架构和实现原理。Lua是一门C语言编写的脚本语言,非常的轻巧,大部分情况下Lua的使用场景是作为宿主语言存在。web脚本、游戏脚本、物联网等场景。通俗点讲,你可以将Lua语
转载
2024-03-02 11:07:35
166阅读
标注@Rule TestRule是一个工厂方法模式中的Creator角色——声明工厂方法。 package org.junit.rules; import org.junit.runner.Description; import org.junit.runners.model.Statement;
转载
2017-04-18 08:31:00
288阅读
2评论
官网 https://spring.io/ https://github.com/spring-projects/spring-framework 注释掉 id 'io.spring.gradle-enterprise-conventions' version '0.0.2' 更改repositor
转载
2020-12-20 22:27:00
94阅读
2评论