程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Lua语法快速入门(5分钟学会Lua)

发布于2019-08-17 21:30     阅读(746)     评论(0)     点赞(4)     收藏(4)


有语言基础时,学习一个新语言语法是非常快速的 ,无非从以下几点入手

注释

变量类型

运算符

条件分支语句

循环语句

函数

特殊用法

面向对象思想(未包含在此) 等

以下通过Lua代码加注释,直观阐述以上内容

  1. --注释方式
  2. --[[
  3. 多行注释
  4. --]]
  5. --********************变量类型********************
  6. --lua中所有的变量 不需要申明变量类型
  7. --lua中的所有变量 默认为全局变量 非全局前面加local
  8. --lua中没有各种数值类型 统一都是Number类型 表示浮点数和
  9. print("*************全局本地变量*************")
  10. local a = 1 --局部 仅限于本文本访问 编程时 尽量都加local
  11. print(a)
  12. a1 = 1.5 --全局
  13. print(a1)
  14. --lua中只有false和nil才为假 0和空字符串为真
  15. e = true;
  16. print(e)
  17. --lua中的string 可以用单引号或者双引号括起来
  18. print("*************字符串相关*************")
  19. b = '单引号字符串'
  20. print(b)
  21. c = "双引号字符串"
  22. print(c)
  23. --lua中字符串的换行 省略了\n换行替代符号
  24. c = [[我是
  25. 你的
  26. 小宝贝
  27. ]]
  28. print(c)
  29. --字符串相关
  30. str = "abCdefg"
  31. print(string.upper(str))--小写转大写
  32. print(string.lower(str))--大写转小写
  33. print(string.reverse(str))--翻转字符串
  34. print(string.find(str, "Cde"))--字符串索引查找
  35. print(string.sub(str, 3))--字符串截取
  36. print(string.rep(str, 3))--字符串重复
  37. print(string.gsub(str, "Cd", "**"))--字符串修改
  38. print(#str)--字符串长度
  39. a = true
  40. print(tostring(a));
  41. print(string.format("我是%s,我今年%d岁了", "小宝贝", 2))--字符串长度
  42. --lua中空的关键字时nil 相当于C#中的null
  43. print("*************空引用*************")
  44. d = nil
  45. print(d)
  46. print("*************类型获取*************")
  47. --字符串拼接符号..
  48. --type 类型判断
  49. print("类型判断"..type(e))
  50. --********************运算符********************
  51. print("*************运算符*************")
  52. --lua中没有自增减运算符
  53. print("加法运算"..1+2)
  54. print("余数运算"..9%2)
  55. print("减法运算"..9-2)
  56. print("乘法运算"..9*2)
  57. print("除法运算"..9/2)
  58. print("幂运算"..9^2)
  59. --********************条件分支语句********************
  60. print("*************条件分支语句*************")
  61. a = 9
  62. if a > 9 then
  63. print("大于9")
  64. elseif a >= 5 then
  65. print("大于5")
  66. elseif a == 3 then
  67. print("值为3")
  68. elseif a ~= 2 then --不等于
  69. print("值为3")
  70. end
  71. --********************逻辑运算符********************
  72. print("*************逻辑运算符*************")
  73. a = true
  74. b = false
  75. if a and b then --逻辑与
  76. print("大于9")
  77. elseif a or b5 then --逻辑或
  78. print("大于5")
  79. elseif not a then -- 逻辑否
  80. print("其它数")
  81. end
  82. --********************循环语句********************
  83. print("*************循环语句*************")
  84. --while 循环
  85. print("*************while循环*************");
  86. num = 0
  87. while num < 5 do
  88. print(num);
  89. num = num + 1
  90. end
  91. --do while 循环
  92. print("*************do while循环*************");
  93. a = 1;
  94. repeat
  95. print(a);
  96. a = a + 1
  97. until a > 5
  98. --for循环
  99. print("*************for循环*************");
  100. for i = 1,5 do --默认递增+1
  101. print(i)
  102. end
  103. for i = 5,1,-1 do --递减1
  104. print(i)
  105. end
  106. --********************函数********************
  107. print("*************函数*************")
  108. function f(x)
  109. return x^2
  110. end
  111. print(f(2))
  112. function f2(x2)
  113. if x2 < 10 then
  114. print("白卷")
  115. elseif x2 < 60 then
  116. print("分太低")
  117. elseif x2 < 70 then
  118. print("及格")
  119. end
  120. end
  121. f2(2)
  122. print("*************变长参数函数*************")
  123. function ff( ... )
  124. local arg = {...}
  125. local total = 0
  126. for i=1,#arg do
  127. total = total + arg[i]
  128. end
  129. print(total)
  130. end
  131. ff(1,2,3,4,5,6)
  132. print("*************函数嵌套*************")
  133. function f3(x)
  134. return function(y) return x + y end
  135. end
  136. a = f3(1)
  137. print(a(2))
  138. --********************复杂数据类型********************
  139. print("*************复杂数据类型*************")
  140. --所有的复杂类型都是table(表)
  141. --数组
  142. print("*************数组,列表*************")
  143. --数组的存储类型可以混合,默认索引从1开始
  144. a = {1,2,3,"12312",123123}
  145. print(a[1])
  146. print(a[4])
  147. print(#a)--打印长度 从1开始计数
  148. print("*************数组遍历*************")
  149. for i=1,#a do
  150. print(a[i])
  151. end
  152. --可以自定义索引 甚至负索引
  153. print("*************自定义索引*************")
  154. a = {[0]=1,2,3,[-1]=4,5}
  155. print(a[0])
  156. print(a[1])
  157. print(a[-1])
  158. print(a[2])
  159. print(a[3])
  160. print(#a)--打印长度 中间产生索引断裂了 会停止计数
  161. print("*************二维数组*************")
  162. a = {{1,2,3},{4,5,6}}
  163. print(a[1][1])
  164. print(a[1][2])
  165. print(a[1][3])
  166. print(a[2][1])
  167. print(a[2][2])
  168. print(a[2][3])
  169. --迭代器遍历
  170. print("*************ipairs迭代遍历键值*************")
  171. a = {[0] = 1,2,[-1] = 3,4,5}
  172. --遍历键值
  173. for i,k in ipairs(a) do
  174. print("ipairs遍历键"..i)
  175. print("ipairs遍历值"..k)
  176. end
  177. print("*************pairs迭代遍历键值*************")
  178. for i,k in pairs(a) do
  179. print("pairs遍历键"..i)
  180. print("pairs遍历值"..k)
  181. end
  182. print("*************迭代遍历键*************")
  183. --遍历键
  184. for i in pairs(a) do
  185. print("键"..i)
  186. end
  187. print("*************字典*************")
  188. a = {["1"] = 5, ["2"] = 4}
  189. print(a["1"])
  190. print(a["2"])
  191. print("*************类*************")
  192. student = {
  193. --年龄
  194. age = 1,
  195. --性别
  196. sex = 0,
  197. --unity成绩
  198. unity = 90,
  199. --成长行为
  200. Up = function(self)
  201. self.age = self.age + 1
  202. print("我成长了"..self.age)
  203. end,
  204. --上课行为
  205. Learn = function( )
  206. print("学习")
  207. end
  208. }
  209. student.Learn()
  210. student.Up(student)
  211. student:Up()
  212. --student.Learn()
  213. student.age = 2
  214. print(student.age)
  215. print("*************特殊用法*************")
  216. a,b,c = 1,2,3,4 --4会被忽略
  217. print(a)
  218. print(b)
  219. print(c)
  220. a,b,c = 1,2 --c会变为nil
  221. print(a)
  222. print(b)
  223. print(c)
  224. --多个返回值
  225. function Test()
  226. return 10,20,30,40
  227. end
  228. a,b,c = Test()
  229. print(a)
  230. print(b)
  231. print(c)

 



所属网站分类: 技术文章 > 博客

作者:239289

链接:https://www.pythonheidong.com/blog/article/48445/219ff26f0dc430736e54/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

4 0
收藏该文
已收藏

评论内容:(最多支持255个字符)