美文网首页
lua数据类型

lua数据类型

作者: Mad_Elliot | 来源:发表于2018-06-06 00:15 被阅读0次

Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread、 table。
可以使用type函数测试给定变量或者值的类型,返回string类型

function func1()
end
print(type(true))
print(type(12))
print(type(func1))
print(type(nil))

> boolean
> number
> function
> nil
1. nil(空)
  1. nil 类型表示一种没有任何有效值,它只有一个值 nil;
  2. 给全局变量或者 table 表里的变量赋一个 nil 值,等同于把它们删掉;
  3. 一个变量只要赋了其他值,它就不可能是nil,无论是 false还是零。

2. boolean(布尔值)

注:nil类型为false,无论0还是1都为true。


3. number(双精度类型的实浮点数)

Lua 默认只有一种 number 类型 -- double(双精度)类型,无论整数或者小数都是number类型的。


4. string(字符串)
  • lua没有char类型,字符串由一对双引号或单引号来表示。
  • 可以用 2 个方括号 "[[字符块]]" 来表示"一块"字符串。
html = [[
<html>
<head></head>
<body>
    <a href="http://www.runoob.com/">菜鸟教程</a>
</body>
</html>]]
print(html)
  • 对一个数字字符串上进行算术操作时,Lua 会尝试将这个数字字符串转成一个数字;将两个数字进行连接会将其转成字符串处理,连接符: ..
> print("2" + 6)
8.0
> print("2" + "6")
8.0
> print("2 + 6")
2 + 6
> print("a" .. 'b')
ab
> print(157 .. 428)
157428

5. table(表)
  • table 的创建是通过"构造表达式"来完成
-- 创建一个空的 table
local tbl1 = {}
 
-- 直接初始表
local tbl2 = {"apple", "pear", "orange", "grape"}
  • Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。
  • 不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始。
local tab1 = {"小明","小强",key1 = "banana",key2 = "apple"}
tab1[3] = "小东"
tab1["key3"] = "candy"

for key, val in pairs(tab1) do
    print(key.." "..val);
end

print(tab1[4])

打印结果:

1 小明
2 小强
3 小东
key1 banana
key3 candy
key2 apple
nil
  • table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。

6. function(函数)
  • 在 Lua 中,函数是被看作是"第一类值(First-Class Value)",函数可以存在变量里
function f1()
    print("Hello!");
end
f2 = f1
f2()

> Hello!
  • function 可以以匿名函数(anonymous function)的方式通过参数传递
function testFun(tab,fun) --传入一个表和一个方法
    for k ,v in pairs(tab) do --遍历表
        print(fun(k,v));  --打印方法返回值
    end
end

tab={key1="val1",key2="val2"}; --新建一个表
testFun(tab,
function(k,v) --匿名函数(没有声明的函数)
    return k.."="..v;
end
);

7. thread(线程)

线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。

8. userdata(自定义类型)

userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。

相关文章

  • Lua 完全教程

    Lua 环境安装 Lua 基本语法 Lua 数据类型 Lua 数据类型:nil(空) Lua 数据类型:boole...

  • 数据类型

    Lua 数据类型 lua是动态类型语言(定义变量时不用指定变量类型) lua有8个基本类型nil、boolean、...

  • Lua字符串的设计

    Lua字符串的设计 在Lua中字符串是一种被内化的数据类型。怎么理解被内化的含义呢?简单来说就是每个存放Lua字符...

  • 2017.4.28-29

    五一放假值班,打酱油了两天。 主要学习了lua的基本知识。lua的数据类型:number, string, boo...

  • Lua 基础数据类型

    Lua有8种基础数据类型:nil, boolean, number, string, function, user...

  • Lua table(表)

    table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。 Lua table 使用...

  • lua表(table)

    table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。Lua table 使用关...

  • lua数据类型

    Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、functio...

  • Lua数据类型

    Lua是一种比较自由的语言,Lua里面变量不要类型定义,只需要为变量赋值。 Lua中有8个基本类型分别为:nil、...

  • Lua 数据类型

    Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。 Lua中...

网友评论

      本文标题:lua数据类型

      本文链接:https://www.haomeiwen.com/subject/izhvsftx.html