lua学习笔记--最基本知识点

1.print

print("hello wold")

2.注释

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

3.标志符

Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。

最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。比如_VERSION

Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。 Lua 是一个区分大小写的编程语言。因此在 Lua 中 Runoob 与 runoob 是两个不同的标示符。以下列出了一些正确的标示符:

4.全局变量

默认申明的是全局变量,类似C#中的public.如果要申明局部变量,用local表示

5.字符串操作

用两个双引号或单引号来表示字符串。

和C#比较大的一个区别在于一组字符串可以通过[[]]两组中括号来表示。比如

str=[[sadasdsadsad

ddadadasda]]

在C#中,两个字符串的拼接可以通过"ddd"+"aaa"实现,但在lua中,通过..来进行拼接操作。

6.表table

和C#很重要的一个区别在于lua中表的下标是从1开始的

目前已知两种表达方式

<1>

tab1={key1="apple",key2="banana"}

切记这个相当于主键为字符串的表。可以通过两种方式范文里边的值

tab1[key1]或者tab1.key1

<2>

tab1={"apple","banana"}

这样有点像字符串数组,可以直接通过tab1[1](apple)来访问

<3>想全部输出表中的值,可以通过

for k,v in pairs(tab1) do

print(k.."--"..v)

end

<4>表的增加,修改和删除

就以tab1={key1="apple",key2="banana"}举例

增加:tab1["key3"]=“orange”

修改:tab1["key1"]=1000

删除:tab1["key2"]=nil

在创建表时,主键不用引号,但它相当于字符串作为主键。在查看或修改表时,需要带引号去查找。

7.function 方法

例子:比较大小

function compare(a,b)

                  if(a>=b) then

                  return a

                  else return b

                   end

end

例子:求N的阶乘(递归)

function factorial(n)

      if(n==1) then 

        return n;

        else

       return n*factorial(n-1)

         end 

end                                                                                                                                                                                                      和C#的区别在于方法不需要通过大括号来封装,而是通过end,并且不需要定义方法的返回值类型

***方法作为参数传递***

C#不是没有把方法作为参数传递,比如委托,Action。在lua没有委托这一概念, 因为参数类型全部都不指定类型,所以方法作为一种参数传递后,优点在于书写起来特别方便,但缺点也很明显,编译时不会报错。运行时如果不合规范才会报错

例如上面可以把表和递归方法全部作为参数传到某一个方法中,实现求出表中所有值的阶乘                                                           function MyFun(tab,fun)
for k,v in pairs(tab) do
print(k.."--Fac"..v..":"..fun(v))
end
end                                                                                                                                                                                                      MyFun(tab2,Factorial)

***匿名方法***                                                                                                                                                                                      就是外部没有申明该方法,方法作为参数传入时直接在参数中创建。一般来说适用于较简单且不会在外部调用的方法。例如上面的第二个参数,之前传的是求阶乘的方法,现在传入一个简单的方法。

MyFun(tab2,

function (v)

return v

end

)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值