lua语言-《lua程序设计》1~5章基础学习
2017-12-05 16:53
267 查看
由于openwrt的web,不得不看lua语法,《lua程序设计》一书讲的很详细基础,比较易懂,以下为重点记录。
1.注释与取消注释 添加注释 --[[ print("hello world") --]] 取消注释只要加“-”即可 ---[[ print("hello world") --]] 2.lua中的字符串是不可变的值,不能像c语言那样直接修改字符串的某个字符 3.lua中的table类型实现关联数组,也就是具有特殊索引方式的数组,除了整数,还可以用字符串等方式 由构造表达式完成,最简单的构造表达式是{} a = {} --创建一个table,并将它的引用存储到a k = "x" a[k] = 10 --新条目,key=“x”,value=10 a[20] = "great" --新条目,key=20,value=“great” a.x = 10 --等同于a["x"] = 10,以字符串索引打牌table 4.虽然可以任何数字作为table的索引起始值,但lua的习惯,通常以1作为索引起始值 5.使用tonumber()可以显示转为为整数 6.lua的函数很有特色 可以存储在变量中 可以作为参数 可以程序重新定义这个函数 可以返回多个结果 可以嵌套在函数中 7.repeat..until语句的使用相当于c中的do..while(条件) 注意:一个声明在循环体中的局部变量作用域包括条件测试 8.数字型for(numeric for) 语法如下: for var=exp1,exp2,exp3 do <执行体> end var从exp变化到exp2,exp3为可选的,作用是指定步长,如果不指定,默认为1 9.泛型for(generic for) 通过迭代器函数遍历所有值,不应该对循环遍历赋值 语法如下: --打印数组a的所有值 for i,v in ipairs(a) do print(v) end lua基础库提供遍历数组的迭代器函数ipairs(),i被赋予索引值,V被赋予该索引的数组元素值 标准库提供的迭代器: 迭代文件中的每行:io.lines 迭代table的元素:pairs 迭代数组的元素:ipairs 迭代字符串的单词:string.gmatch 10.函数专讲 一个函数若只有一个参数,并且此参是字符串或table构造式,()可有可无 print "hello word" 相当于 print("hello word") f{x=10,y=20} 相当于 f({x=10,y=20}) 面向对象式的调用,冒号操作符 o.foo(o,x) 另一中写法是 o:foo(x),o隐式的作为函数的第一个参数 调用函数时提供的实参数量可以与形参数量不同,lua自动调整实参数量匹配参数表要求 函数具有变长参数,使用表达式"...",表示接受不同数量的实参 示例; function add(...) local s=0 for i,v in ipairs{...} do s=s+v end return s end print(add(3,4,10,25,12)) 注1.多值恒等式函数:function id(...) return ... end 注2.select("#",...);返回所有变长参数的总和,其中包括nil 具名实参:通过名称来指定实参 实现是将实参组织搭配一个table中,并将这个table作为唯一的实参传给函数,上面讲了,实参 只有一个table构造式,函数调用的圆括号"()"可有可无。所以可以写成如下示例: os.rename{old="temp.lua",new="temp1.lua"} --os.rename()的作用是重命名
相关文章推荐
- quick-cocos2d-x从零开始游戏开发笔记(二):Lua语言基础学习
- [ IOS-Cocos2d-x 游戏开发] - Lua 开发之一(Lua-基础语言学习)
- eLua学习第三课:Lua脚本语言的基础入门教程
- lua学习笔记之-语言基础
- Redis基础学习--脚本(Lua语言)
- C语言基础学习6: 指向函数的指针
- 编程基础—学习C语言基础的总结
- Lua语言基础汇总(4) -- 函数
- 0基础lua学习(三)关系运算符
- 0基础lua学习(十一)table
- 更灵活的定位内存地址的方法03 - 零基础入门学习汇编语言34
- Call指令和Ret指令讲解06 - 零基础入门学习汇编语言53
- java学习笔记(2)--java语言基础
- D03——C语言基础学习PYTHON
- C语言基础学习学习前的准备-1
- 标志寄存器02 - 零基础入门学习汇编语言55
- 【C/C++学习】C语言基础知识积累
- c语言基础学习05_数组和字符串
- 寄存器(CPU工作原理)02 - 零基础入门学习汇编语言07
- C语言学习心得-C语言基础-知之为知之