首页 > 代码库 > Lua学习笔记1,基本数据类型

Lua学习笔记1,基本数据类型

1.字符串的连接使用的是  .. ,如

print(123 .. 44)

输出 12344

print (‘a‘ .. ‘b‘)

输出 ab

print(123 .. 44)这句的时候 .. 两边要空格

2. lua注释符号

单行   --

多行

--[[

此处是注释

--]]

3. 字符串块

stringblock=[[

this is a string

block

]]

4. 空类型  nil 相当于NULL,如果一个变量未赋值,那么其值为 nil,且在条件语句中 nil值为 false,例如

if nil then

  print(‘nil‘)

else

  print(‘nil is false‘)

end

输出 

nil is false

5. # 放在字符串前面可以计算字符串长度

str1 = "this is a string"

print(#str1)

输出

16

6. table数据类型

这个类型蛮有意思的,表示的是关联数组,有点类似于字典结构,数字和字符串都可以作为索引

a={}  --空table

a["key"]=‘value‘

a[10]=22

for k,v in pairs(a) do

  print( k ..":".. v)

end

输出

key : value
10 : 33

这里pairs()是函数,可以用print(type(pairs))查看,具体用法未明。。。后面再看

 

另外,table的默认索引是从1开始的

tbl = {"apple", "pear", "orange", "grape"}
for key, val in pairs(tbl) do
    print("Key", key)
end
输出
Key 1
Key 2
Key 3
Key 4

table没有固定长度,也不用预先声明其大小,没有初始化的table都是nil

7. function类型
这个类型好爽,和matlab里面的function很类似,首先function可以类似于应用传递,其次function可以直接作为函数参数传递

function fibonaccia(n)
  if n == 0 or n==1 then
    return 1
  else
    return fibonaccia(n-1)+fibonaccia(n-2)
  end
end
print(fibonaccia(10))
fib=fibonaccia
print(fib(10))
function funcpass(tab,fun)
  for k,v in pairs(tab) do
    print(fun(v))
  end
end
tab={1,2,3,4,5}
funcpass(tab,fib)

总结:Lua有8种基本的数据类型:nil,number,string,table,function,boolean,thread,userdata

Lua学习笔记1,基本数据类型