Lua奇技淫巧之一——模拟Pascal中的with

Pascal(Delphi)、VB中都有一个with关键字,可以帮助程序员减少大量的输入、提高效率。Lua 中没有这个关键字,但我们可以利用以下方式模拟。 例: a={} setfenv(function() a=1 b=2 end,a)() 以上代码效果等于: a.a=1 a.b=2 等价于Pascal中的: with a do begin a:=1; b:=2; end; 当然,这样只能用于赋值,如果需要在a{}中写函数就不能这么写了。这时可以这样写: a=s...
Lua | 2018-03-29 12:01 | 阅读 1742 次 | 评论 0 条

欧拉筛求素数,果然非常快

看到一个求素数的题目,忽然想试试欧拉筛有多快。 题目:求一千万内素数的个数。 先看最普通的筛子:1077秒 T = os.time() --求iMaxN内的素数 local iMaxN = 10000000 --普通筛子 local iSS = {} --素数数组 local iSZ = {} --筛子 for i = 1, iMaxN do iSZ[i] = i end --过筛求出所有素数 for i = 2, math.sqrt(iMaxN) do for j = i + 1, iMaxN do if ...
Lua | 2018-03-23 16:54 | 阅读 2787 次 | 评论 0 条

用TCC在Windows下编译Lua5.3.4

最新的Lua版本是5.3.4,网上能找到的编译过的版本有这么几种: 1、Lua5.3.4源码 2、用新版MinGW-w32/w64编译的Lua5.3.4,只有exe文件,没有链接库,同时MinGW必须带上libgcc_s_dw2-1.dll这么一个库,用起来比较麻烦 3、用TCC编译并压缩过的Lua5.3.4,只有64K大,但也没链接库 因此,我想重新编译源码,生成动态/静态链接库及exe文件。因为最近在学习TCC,而TCC是是标准的C99,所以试着用TCC(0.9.27)来编译。以下默认TCC已经安装好(其实就是解压TCC到某个文...
Tiny C | 2018-03-23 15:04 | 阅读 2704 次 | 评论 1 条
浏览37962次
最新评论