十分钟学会lua基础

[复制链接]
查看7834 | 回复21 | 2021-8-16 22:00:47 | 显示全部楼层 |阅读模式
  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) print(x,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)
复制代码


回复

使用道具 举报

newone666 | 2021-8-16 22:26:39 | 显示全部楼层
给我二十分钟 我能行
回复

使用道具 举报

qq99989680 | 2021-8-16 22:32:18 | 显示全部楼层
回复

使用道具 举报

xywl | 2021-8-16 22:44:30 | 显示全部楼层
谢谢分享
回复

使用道具 举报

LUA蜂群 | 2021-8-17 13:00:08 来自手机 | 显示全部楼层
你这样,别人会放弃的
回复

使用道具 举报

尘络 | 2021-8-17 17:28:56 | 显示全部楼层
你这样,别人会放弃的
回复

使用道具 举报

龙睛鱼 | 2021-8-18 08:45:09 | 显示全部楼层
回复

使用道具 举报

yh4132990 | 2021-8-18 12:04:56 | 显示全部楼层
:):):):):):):):):):):):):):):):):):):):)
回复

使用道具 举报

lcm2022 | 2021-11-19 22:44:37 | 显示全部楼层
感觉好难懂。
回复

使用道具 举报

mrqx520 | 2021-11-19 23:24:37 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则