
Lua
考班格
一只老菜鸟
展开
-
Lua基础:Lua基础
使用工具:SciTELua的特点:① 可扩展性。Lua 的扩展性非常卓越,以至于很多人把 Lua 用作搭建领域语言的工具(注:比如游戏脚本)。Lua 被设计为易于扩展的,可以通过 Lua 代码或者 C代码扩展,Lua 的很多功能都是通过外部库来扩展的。Lua 很容易与 C/C++、java、fortran、Smalltalk、Ada,以及其他语言接口。② 简单。Lua 本身简单,小巧;内...原创 2019-02-28 22:08:56 · 5954 阅读 · 0 评论 -
Lua基础:String库
string库提供了Lua操作字符串的基本功能。str=string.upper("a??o") --小写转大写 print(str) str=string.lower("BBB") --大写转小写 print(str) str="hello world" print(string.len(str)) --字符串长度 print(string.r...原创 2019-03-04 14:39:36 · 307 阅读 · 0 评论 -
Lua基础:数学库
数学库由算术函数的标准集合组成,比如三角函数库(sin, cos, tan, asin, acos, etc.),幂指函数(exp, log, log10),舍入函数(floor, ceil)、max、min,加上一个变量 pi。数学库也定义了一个幂操作符(^)。local sin, asin= math.sin, math.asin local deg, rad = math.deg, m...原创 2019-03-04 14:00:12 · 332 阅读 · 0 评论 -
Lua基础:Table库
数组的大小:table.getn(),数字以非nil作为结束print(table.getn{10,2,4}) --> 3 print(table.getn{10,2,nil}) --> 2 print(table.getn{10,2,nil; n=3}) --> 3 print(table.getn{n=1000})...原创 2019-03-04 13:51:58 · 411 阅读 · 0 评论 -
Lua基础:Weak表
Lua 自动进行内存的管理。程序只能创建对象(表,函数等),而没有执行删除对象的函数。通过使用垃圾收集技术,Lua 会自动删除那些失效的对象。任何在全局变量中声明的对象,都不是 Lua 认为的垃圾,即使你的程序中根本没有用到他们。这种情况下,不会回收,你应当自己处理它(你的程序),为这种对象赋 nil 值,防止他们锁住其他的空闲对象。 Weak 表是一种用来告诉 ...原创 2019-03-04 13:26:25 · 397 阅读 · 0 评论 -
Lua基础:面向对象程序设计
示例代码:Accout={balance=0} function Accout.withdraw(v) Accout.balance=Accout.balance-v end Accout.withdraw(100.00) --使用.调用方法 function Accout.withdraw(self,v) --self...原创 2019-03-03 01:27:11 · 246 阅读 · 0 评论 -
Lua基础:Packages
Packages:组织全局变量的命名complex={} --全局名complex function complex.new(r,i) return {r=r,i=i} end complex.i=complex.new(0,1) function complex.add(c1,c2) return complex.new(c1.r+c2.r,c1.i+c...原创 2019-03-02 22:14:18 · 363 阅读 · 0 评论 -
Lua基础:环境
Lua 用一个名为 environment 普通的表来保存所有的全局变量。for n in pairs(_G) do --打印所有全局变量的名字 print(n) end动态名字访问全局变量:function getfield(f) local v=_G --全局变量表 for w in string.g...原创 2019-03-02 20:55:43 · 256 阅读 · 0 评论 -
Lua基础:Metatables and Metamethods
算术运算的 Metamethods:Set={} function Set.union(a,b) local res=Set.new{} for k in pairs(a) do res[k]=true end for k in pairs(b) do res[k]=true end return res end function Se...原创 2019-03-02 17:05:02 · 247 阅读 · 0 评论 -
Lua基础:数据文件与持久化
Data文件:Entry{"Donald E. Knuth", "Literate Programming", "CSLI", 1992} Entry{"Jon Bentley", "More Programming Pearls", "Addison-Wesley", 1990}读取文件数据:local count=0 function Entry(b)...原创 2019-03-02 15:23:00 · 577 阅读 · 0 评论 -
Lua基础:数据结构
table 是 Lua 中唯一的数据结构,其他语言所提供的其他数据结构比如:arrays、records、lists、queues、sets 等都是通过 table 来实现,数组:a={} for i=1,1000 do a[i]=0 end矩阵和多维数组:N行M列N=5 M=5 mt={} --创建一个矩阵 for i=1,...原创 2019-03-02 14:46:26 · 354 阅读 · 0 评论 -
Lua基础:协同程序
协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,协同有三个状态:挂起态、运行态、停止态。co=coroutine.create( --coroutine协同,create创建协同程序。 function() --匿名函数 --print("hi") for ...原创 2019-03-01 19:42:01 · 177 阅读 · 0 评论 -
Lua基础:文件加载,错误处理
dofile函数:function dofile (filename) local f = assert(loadfile(filename)) return f() endrequire函数:Lua 提供高级的 require 函数来加载运行库。1. require 会搜索目录加载文件2. require 会判断是否文件已经加载避免重复加载同一文件。local fil...原创 2019-03-01 16:28:14 · 843 阅读 · 0 评论 -
Lua基础:迭代器
迭代器:迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素function list_iter(t) --迭代器,返回元素值 local i=0 local n=table.getn(t) return function() i=i+1 if i<=n then return t[i] end ...原创 2019-03-01 15:56:47 · 243 阅读 · 0 评论 -
Lua基础:函数
函数有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用; 2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。 function func_name (arguments-list) ...原创 2019-03-01 14:28:47 · 338 阅读 · 0 评论 -
Lua基础:Lua基本语法
示例代码:赋值语句:赋值是改变一个变量的值和改变表域的最基本的方法。a,b,c=0,1 print(a,b,c) --a=0,b=1,c=nil -------------------------------------------------------- a,b=a+1,b+1,b+2 print(a,b) --a=1,b=2 ---------...原创 2019-03-01 00:04:34 · 514 阅读 · 0 评论 -
Lua基础:IO库
I/O 库为文件操作提供两种模式。简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。完全模式(complete model)使用外部的文件句柄来实现。"*all" 读取整个文件 "*line" 读取下一行 "*number" 从串中转换出一个数值 num 读取 num 个字符到串简单模式:io.write("hello", ...原创 2019-03-04 15:37:55 · 1500 阅读 · 0 评论