111
111
LUA語言中
字符串的組拼是使用两个点
luaSciTE学习笔记
c# null = lua nil
c# bool = lua boolean
c# float = lua number
c# string = lua string
c# void = lua function
c# var = lua userdate
c# thread = lua thread
c# [] = lua table
type() 获取值类型
tab1={} --空表
tab2={key1=100,key2="value"} --有键对应值的表
tab3={"apple","pear","orange","grape"} --无键对应的表
for key val pairs(tab1) do
print(key ..":"..val)
end
表的使用方式
调用
tab1.key1="ANYU"
tab1["key1"]="anyu"
print(tab1.key1)
print[tab1["key1"]]
1、lua中索引从1开始
05.print方法、单行和多行注释
1.print(“hello”)后面的“;”可加可不加。
2.print用来向控制台输出字符。
3.单行注释:--
eg:--print用来向控制台输出字符
4.多行注释:--[[
--]]
eg:--[[
print(“hello”)
print(“hello world”)
--]]
5.多行注释快速编程单行注释,在“--[[ --]]”前加一个--[[ --]]---[[ --]]
boolean类型
boolean nil也当做是false
Lua 把 false和nil 当做假 其他都是真 例如数字10
if else 没有括号
例:
1.if true then
print(true)
end
2.
if nil then
print()
else
print()
end
table.sort 排序
table.maxn 最大值
分段传参,利用主线程和协程合作,
function foo (a)
print("foo 函数输出", a)
return coroutine.yield(2 * a) -- 返回 2*a 的值
end
co = coroutine.create(function (a , b)
print("第一次协同程序执行输出", a, b) -- co-body 1 10
local r = foo(a + 1)
print("第二次协同程序执行输出", r)
local r, s = coroutine.yield(a + b, a - b) -- a,b的值为第一次调用协同程序时传入
print("第三次协同程序执行输出", r, s)
return b, "结束协同程序" -- b的值为第二次调用协同程序时传入
end)
print("main", coroutine.resume(co, 1, 10)) -- true, 4
print("--分割线----")
print("main", coroutine.resume(co, "r")) -- true 11 -9
print("---分割线---")
print("main", coroutine.resume(co, "x", "y")) -- true 10 end
print("---分割线---")
print("main", coroutine.resume(co, "x", "y")) -- cannot resume dead coroutine
print("---分割线---")
yield参数作为 resume的返回值
resume的参数作为协程的参数
我使用的lua 5.4版本 arg 的值
myfirst.lua:125
-3 c:/Users/Administrator/.vscode/extensions/actboy168.lua-debug-1.36.0/runtime/win64/lua54/lua.exe
myfirst.lua:125
-2 -e
myfirst.lua:125
-1 dofile[[c:/Users/Administrator/.vscode/extensions/actboy168.lua-debug-1.36.0/script/launch.lua]];DBG{10340,[[ansi]]}
tabl中的索引从1开始
简单的输出语句:
print('hello wrold')
结尾分号可加可不加
注释:
1.-- 单行注释
2.--[[ 多行注释]]--
可变函数中默认的arg数组最后一位是数组长度
lua5.3中取消了默认arg,需要在函数体内自行定义
repeat 循环体
until(条件)
满足条件后跳出循环
局部变量的生命周期与所咋语句块有关
局部变量可以和全局变量重名
如果出现重名的,优先访问距离最近的
只要变量前面不加local关键字,就是全局变量
数据类型
需要先保存好文件才能运行文件。