LuaBasicScripts

--单行注释
--[[
多行注释
]]


--↓基本数据类型↓
-- nil 空值,boolean bool类型
-- number 数字类型(包含整数和浮点数), string 字符串
-- table 表 function 函数


-- 定义全局变量
-- a = 10
-- a,b,c,d = 1,2,3,4
-- print(a,b,c,d)
-- print(a)


-- -- 定义局部变量
-- local b = 100
-- print(b)


-- --变量默认值为nil
-- local c
-- print(c)


--定义变量,申请内存,变量是对这块内存的引用,
--当这块内存没有引用时,该内存被回收
-- a = 10
-- c = a
-- a = nil
-- c = nil


--输入输出
-- print(1) -- 相当于Writeline,输出后自动换行
-- io.write(2); -- 输出后不自动换行
-- 输入必须要再终端运行
-- print("Please input value")
-- a = io.read()
-- print(a)


--转义字符
-- print("this line\nnext line\n\"双引号\",'单引号'")


-- stirng可以与num相互转换
-- print("10" + 10)


-- string拼接
-- print("LO" .. "IOS" .. "ZB")


-- string与num互转,但不可如下
-- "10" = 10 -- (×)
-- a = "10"
-- b = 10
-- b = tonumber(a)
-- a = tostring(b)
-- print(a)
-- print(b)


-- 关系运算符 > < >= <= == ~=
-- print(3 ~= 4)


-- if语句 if...then...end
--形式一
-- if 5>3 then 
-- print("yes")
-- end 


-- --形式二
-- if 5>3 then
-- print("Yes")
-- else
-- print("No")
-- end


--形式三
-- if 5>3 then
-- print("Yes")
-- elseif 10 > 9 then
-- print("No")
-- else
-- print("default")
-- end




-- 只有nil与false为假
-- a = nil
-- if a then
-- print(1)
-- print(a)
-- end


-- 逻辑运算符
-- and = &&,or = ||,not = !
-- c = 10


-- and返回假值,当都为假返回前者,都为真返回后者 
-- print(nil and false)
-- print(false and nil)
-- print(false and c)
-- print(c and false)
-- print(c and nil)
-- print(4 and 5)
-- or返回真值,都为真返回前者,都为假返回后者
-- print(c or nil)
-- print(c or false)
-- print(nil or false)


-- 循环
-- while循环
-- while...do
-- ...
-- end
-- do ... while循环
-- i = 0
-- repeat 
-- print(i)
-- i = i + 1
-- until i >= 10 
-- for 循环
-- for i = 1 ,10 ,1 do 
-- print(i)
-- end


-- 边长为5的菱形
-- n =5
-- for i=n - 1,-(n - 1), -1 do
-- for j=-(n - 1),(n - 1), 1 do
-- if math.abs(i) + math.abs(j) <= n - 1 then
-- io.write("*")
-- else
-- io.write(" ")
-- end
-- end
-- print()
-- end


-- 一种函数形式
-- function Add(a,b)
-- return a+b
-- end


-- add1变量直接等于一个方法
-- add1 = function (a,b)
-- return a+b
-- end
-- print(Add(1,2))
-- print(add1(1,2))


-- 函数参数可以传递任意个,不受限制
-- print(add1(1,2,3)) -- (√)
-- print(add1(1)) -- (×)
-- p = function (a,b)
-- print(a)
-- print(b)
-- end
-- p(1)


-- 可以同时返回多个值
-- func = function ( )
-- return 1,2,3,4
-- end
-- a,b,c,d = func()
-- print(d)


-- 表类型替代数组
-- t = {}
-- t[0] = 111
-- t[1] = 1
-- t[2] = 100
-- print(t[0])
-- print(t[1])


-- 索引从1开始
-- t = 
-- {
-- --表里所有元素用逗号隔开
-- --表实际上就是一个键值对数组,键值可以为任意类型
-- --表里没写键的变量,键默认从1开始
-- age = 100,80,101,
-- xiaoyu = {sex = women,age = 10,200}
-- }
-- -- 表里成员可进行如下读写方式
-- print(t["age"])
-- print(t[1])
-- print(t.age)
-- print(t["xiaoyu"]["age"])


-- xiaoyu = {
-- age,
-- -- self可以代替this
-- grow = function (self,n)
-- self.age = self.age + 1 +n
-- end
-- }


-- xiaoyu.age = 18
-- -- 模拟面向对象,传参第一种方式
-- xiaoyu.grow(xiaoyu,5)
-- -- 第二种
-- xiaoyu:grow(5)
-- --冒号,哪个表调用,self被赋值为哪个表
-- print(xiaoyu.age)


-- --
-- t = {1,3,5,
-- name = "xiaoyu",
-- age = 18,
-- 10
-- }
-- 求出索引为正数的成员个数
-- print(#(t))


-- num = {2,4,3,67,82,5,14,6}
-- t = #(num)
-- for i=1,t-1 do
-- for j=i,t-i-1 do
-- if num[i] >num[i+1] then
-- temp = num[i]
-- num[i] = num[i+1]
-- num[i+1] = temp
-- end
-- end
-- end


-- -- for i=1,#(num) do
-- -- print(num[i]);
-- -- end


-- -- 遍历表中所有索引值为正数的成员
-- for i,v in ipairs(num) do
-- print(i,v)
-- end


-- -- 遍历表中所有成员(!先打印数字索引)
-- for k,v in ipairs(num) do
-- print(k,v)
-- end




-- xiaoyu = {
-- huazhuang = function ()
-- print("huazhuang")
-- end
-- }
-- -- 表继承
-- setmetatable(xiaoyu,{_index = Person})
-- xiaoyu.age = 19
-- print(xiaoyu.age)


--  Person = {
-- age,
-- height,
-- eat = function( food )
-- print("eat "..food)
-- end,
-- -- 手写方法创建子对象
-- new = function ( self )
-- obj = {}
-- setmetatable(obj, {__index = self})
-- return obj
-- end
-- }


-- xiaoyu = Person:new()
-- xiaoyu.eat("meat")
-- LSL = Person:new()
-- LSL.lu = function (  )
-- print("...")
-- end
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值