lua语法学习

--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();

 ]]
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值