--print("hello world!")
--[[
sd
--]]
--[[縫rint(b);
b=10;
print(b);
b=null;
print(b);
if (10>0 then)
print("这个是真的");
else
print("这个是假的");
end
--str=[
我是帅哥
说的说就是我自己!
厉害不
]
print(str)
--print(#str)
print("32"+"26");
print(#"234");
print(str.."sss");
str1={1,2,3,"帅哥",sk=200};
print(str1[1]);
print(str1.sk);
str1[1]=70;
print(str1[1]);
str1.skr="hehe";
for key,val in pairs(str1) do
print(key..val)
end
print(str1["skr"]);
function aaa(iNum)
if(iNum==1)
then
return iNum;
else
return iNum*aaa(iNum-1);
end
end
print(aaa(5));
function abc(str,fun)
for k,y in pairs(str)
do
fun(k,y);
end
end
str1={hehe="sss",haha="bbb"};
function ccc(a,b)
print(a..":"..b);
end
abc(str1,function(a,b)
print(a..":"..b);
end);
a=10;
b=20;
function fun1(q,e)
print(a+b);
local a=2;
local b=3;
print(a+b);
a=7;
b=3;
print(a+b);
end
fun1(a,b);
print(a);
local a,b,c=10,20,30;
print(a,b,c);
a,b,c=c,a,b;
print(a,b,c);
local a=0;
while(a<10)
do
--print(a);
a=a+1;
end
for a=1000,0,-7
do
--print(a);
end
a=1;
repeat
--print(a);
a=a+1;
until(a>=11)
local arr={1,20,4,37,6,-5,44,99,0,-77};
local arr1={1,20,4,37,6,-5,44,99,0,-77};
local arr2={1,20,4,37,6,-5,44,99,0,-77};
function forNum()
for i=1,#arr,1
do
for j=1,#arr,1
do
if(arr[i]<arr[j])
then
arr[i],arr[j]=arr[j],arr[i];
end
end
end
for i=1,#arr,1
do
print(arr[i]);
end
end;
--while 循环
function whileNum()
local i=1;
while(i<=#arr1)
do
local j=1;
while(j<=#arr1)
do
if(arr1[i]<arr1[j])
then
arr1[i],arr1[j]=arr1[j],arr1[i];
end
j=j+1;
end
i=i+1;
end
local aa=1;
while(aa<=#arr1)
do
print(arr1[aa]);
aa=aa+1;
end
end
function repeatNum()
local i=1;
repeat
local j=1;
repeat
if(arr2[i]<arr2[j])
then
arr2[i],arr2[j]=arr2[j],arr2[i];
end
j=j+1;
until(j>#arr2)
i=i+1;
until(i>#arr2)
local aa=1;
repeat
print(arr2[aa]);
aa=aa+1;
until(aa>#arr2)
end
local a=100;
if(a>100)
then
print(1);
elseif(a<=100)
then
print(2)
end
function foo(...)
--local arg={...}
for i=1,#arg,1
do
print(arg[i]);
i=i+1
end
end
if(10~=20)
then
print(1);
else
print(0);
end
local aaa=false;
if(not aaa)
then
print(1)
else
print(0)
end
str="my name is \n \"a\"";
print(str);
require "a="--引用头文件!
return hello
a={"asd","aa",13};
b={};
setmetatable(a,b{_metatable="asd"});--设置原表
getmetatable(a);--获取原表
a[10]=1;
__index=a;--表里面未定义值的时候可以用来定义新的值;
__newindex --增加新的索引会调用
c={};
__nexindex=c;--这里新增加的值会放到C表里面去
__newindex=function(tab,key,val)
rawset(tab,key,val)--这是设置新的索引的方法
end
__add --两个表合成一个,官网有文档方法
__call=function(tab,arg1,arg2)--参数第一个必须是个表
return arg1,arg2;
end
a(1,2,3);
__tostring=function(string)--字符串返回
aa=coroutine.create(
function(a,b)
print(a+b);
coroutine.yield();--暂停协同,继续用resume
print(a-b);
end
)--创建协同
coroutine.resume(aa,20,30);--调用协同
bb=coroutine.wrap(
function(a,b)
print(a+b);
end
)--同样创建携程的方法,该方法没办法用暂停yield方法
bb(20,30)
print("i,m hero");
coroutine.resume(aa)
aa=coroutine.resume()--第一个返回true和false是正是运行是否成功,第二个开始才是接收的
--如果函数中有暂停,可以在暂停里面传参数返回
coroutine.status()--获取携程运行状态
coroutine.running()--获取运行中的携程
aa=io.open("test.txt","r");--打开文件 r只读,w删除之前写入新的,a在最后写新的,不会删除
--io.input(aa);--读取文件
io.write("我感觉没什么机会呢");--写入新的内容
--print(io.read("*a"));--*a表示读取全部内容
print(io.read());
--io.close(aa);--关闭文件
print(aa:read());--直接用名字来写是完整模式,完整模式不用input
aa:close();
q={
a="123";
b="22";
name="xixi";
eat=function()
print(self.name.."会吃饭");
end;
};
qq=q;
function qq:eat()--:表示不用传参,当前指向当前对象如同this,这种方式不能在表里定义
print(self.name.."在吃饭");
end;
qq:eat();
function qq:new(o)
local t=o or {};
setmetatable(t,{__index=self;--[[__nexindex=function(tab,key,val)rawset(tab,key,val) end;--]]});
--[[
setmetatable(t,self);
self.__index=self;
--]]
return t;
end;
bb=qq:new();
bb:eat();
bb.name="瓜妹";
print(bb.name);
bb:eat();
bb.playGame=function()
print("瓜妹叫你们上号!");
end;
bb.playGame();
student=qq:new();
student:eat();
]]