词法分析实例在《递归下降算法》一节里,介绍过数学表达式的词法分析,现在正式开始lua语言的词法分析。以一段简单的lua代码为例:-- 输出最大值
local a, b = 10.5, 20.00
local c = math.max(a, b)
local d = string.format(
"maxval(%f,%f)=%f", a, b, c)
print(d)代码逻辑为取a
转载
2024-04-19 13:36:38
96阅读
转载
2021-06-28 15:21:27
90阅读
Math.min()和Math.max()用法比较类似:console.log(Math.min(1, 5, 2, 7, 3)); // 输出:1但它们不接受数组作为参数。如果想使用数组作为参数,有以下两个方法:applyconst arr = [1, 5, 2, 7, 3];
console.log(Math.min.apply(null, arr)); // 输出:1扩展运算符const ar
原创
2023-09-19 17:00:26
71阅读
作为菜鸡界的copy战士,首要特点就是:懒! 内置函数那么多,方法那么多,真的不可能一个一个去记吧,比如求最大值最小值(也许你会杠这不是最简单用到最多的api吗!但是,我就是记不住略略略=。=) 搜js求最大值最小值,也许出现最多的答案是: let arr = [9, 1, 1, 8, 3] Mat ...
转载
2021-09-18 11:00:00
981阅读
2评论
内置库的实现_从math模块看Lua的模块注册机制
Lua5.2自带了几个库,实现了一般应用最基本的需求。这些库的实现仅仅使用了Lua官方手册中提到的API,对Lua核心部分的代码几乎没有依赖,所以最易于阅读。阅读这些库的实现,也可以加深对Lua API的印象,方便我们自己扩展Lua。注意:在看这个
转载
2024-04-05 13:41:39
127阅读
数学库math库由一组标准的数学函数构成,包括三角函数(sin,cos,tan,asin,acos 等)。变量 pi 和 huge ,其中 huge 表示Lua可以表示的最大数 函数 randonseed() 用于设置伪随机数生成器的种子数,如果种子数相同的话,程序运行每次都会生成相同的随机数。如希望得到不同的随机数,则使用当前时间作为种子数。调试库自省函数 debug.getinfo() 第一个
转载
2024-04-19 10:51:14
102阅读
使用cocos2dx-lua做开发,免不了需要利用额外的lua扩展库。lua 扩展库一般由 c/c++ 写成,其接口有两种方式生成,一种是手写luaL_register(lua5.1),另一种是利用 tolua++ 工具。这里讨论的是前者,即如何把已经写好的库导入到cocos2dx项目中使用。项目采用的是 cocos2dx-3.x 版本,涉及到的目录文件请对号入座。准备所需的库首先我们要知道,co
转载
2024-04-05 13:16:53
0阅读
http://blog.csdn.net/yanshou0619/article/details/8261184函数名描述示例结果pi圆周率math.pi3.1415926535898abs取绝对值math.abs(-2012)2012ceil向上取整math.ceil(9.1)10floor向下取整math.floor(9.9)9max取参数最大值math.max(2,4,6,8)8min取参数
转载
精选
2013-02-26 14:29:41
1223阅读
函数名描述示例结果pi圆周率math.pi3.1415926535898abs取绝对值math.abs(-2012)2012ceil向上取整math.ceil(9.1)10floor向下取整math.floor(9.9)9max取参数最大值math.max(2,4,6,8)8min取参数最小值math.min(2,4,6,8)2pow计算x的y次幂math.pow(2,16)65536sqrt开平方math.sqrt(65536)256mod取模math.mod(65535,2)1modf取整数和小数部分math.modf(20.12)200.12randomseed设随机数种子math.ra
转载
2013-02-25 11:48:00
397阅读
2评论
引言上面第1节,概要介绍了Lua1.0源代码的编译和执行过程,下面就让我们来看看真正的源代码吧。main函数你在哪里?任何一个可执行的程序都有一个main函数,那lua的main函数在哪里呢?在lua.c里面。/*
** lua.c
** Linguagem para Usuarios de Aplicacao
** TeCGraf - PUC-Rio
** 28 Apr 93
*/
#in
在lua中,如果我们需要随机数的时候,会使用到math.random,为了避免伪随机我们的一般编写方式如下: -- 获取当前系统时间(秒)作为随机种子
math.randomseed(os.time())
-- 有三种方式:
-- 1. 不带参数调用时,获取的是[0,1)范围内的随机浮点数
-- 2. 带一个整型参数时,获取的是[1,n]范围内的随机整数
-- 3. 带两个整型参数m,n时,获
实在厌倦了做了多个游戏项目之后,对常用的数学计算总是算了又忘忘了再算。与其他技术问题相比,一个解决一个数学型问题有着费时、不易调试逻辑错误、边界条件不明显有隐患、没成就感等特点。本着坑不能踩n+1次的心态,我做了这个东西——LuaMathLib。
今天的主角是LuaMathLib,一个通用可移植的纯Lua数学库。语言层面上的特点面向对象 即封装、实例化那堆术语了,目的是在任何面向对象语言中可
转载
2024-07-23 20:04:25
53阅读
apply的一些其他巧妙用法 Math.max.apply( null, [12,23,34,45] ); //细心的人可能已经察觉到,在我调用apply方法的时候,// 第一个参数是对象(this),// 第二个参数是一个数组集合,// 在调用Person的时候,他需要的不是一个数组,// 但是为 ...
转载
2021-10-09 14:46:00
339阅读
2评论
//11 关联数组 (1)a = {} --创建一个table,并将它的引用存储到a
k = "x"
a[k] = 10
print(a["x"]) --10
print(a[k]) --10
a[k] = a[k] + 1
print(a[k]) --11
--a["x"] 等同于 a.x 但是a[k]不等同于a.k (2)打印table所有行for i=1, #a do --#a返回t
转载
2024-09-27 20:00:07
0阅读
首先弄懂apply 和 call 都是js函数自带的方法。区别如下: apply和call的用法只有一个地方不一样,除此之外,其他地方基本一模一样 1. a.call(b,arg1,arg2…) 2. apply(b,[arg1,arg2]) //apply只有2个参数,它将call的参数(arg1
转载
2017-08-22 14:07:00
168阅读
2评论
考虑如下代码:var min = Math.min();var max = Math.max();console.log(min < max);按照常规思路,这段代码应该输出 true,毕竟最小值应该小于最大值。但是当我们运行这段代码时,却神奇的输出了 false。为什么会这样呢?还得去查查 MDN 的相关文档。The Math.min() function returns the smal
原创
2021-05-19 13:44:43
441阅读
目录一、从main函数看整个状态机的初始化二、全局状态机 - 数据结构lua_State和global_State三、全局状态机 - 初始化lua_newstate四、全局状态机 - 销毁lua_close一、从main函数看整个状态机的初始化Lua的main函数方法中,lua_State *L = luaL_newstate(); 主要用于创建全局状态机。luaL_newstate主要
转载
2024-05-01 20:55:13
138阅读
工作后,整个人已经比較松懈了。尽管一直在看lua的源代码。可是一直是比較零碎的时间,没有系统的整理,所以还是收获不多。由于近期工作也不是非常忙了,就想整理下lua的源代码学习的笔记。加深下印象,并分享给大家。先说下这系列bolg我会每周更新2-3篇,没有顺序的这些文章都是自己的浅薄的理解。有什么错误,还请各位拍砖赐教。1.关于c语言函数的声明相信大家都知道接口的重要,在lu
转载
2024-04-21 08:43:44
40阅读
--经过数天的查阅网上的资料(资料各种坑啊,一系列问题!),终于让他在linux-mint17 cinnamon工作了网络上的资料问题:getting "llua_do_call: funcction conky_clock_rings execution failed: attempt to call a nil value"这个问题是普遍出现, 很多指向的是lua文件的value是了nil值解
转载
2024-06-14 15:14:03
71阅读
--[[
命名空间: xstr
作者: apache(email: hqwemail@gmail.com; website: http://hi.baidu.com/hqwfreefly)
版本号: 0.2 (from 0.1)
创建日期: 2010-10-17
函数列表: trim, capitalize, count, startsw
转载
2024-04-03 15:01:36
100阅读