Unity 3D热更新知识之Lua语言(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41967240/article/details/102709675

一、Lua

1. 轻量小巧的脚本语言。

2. 设计目的是嵌入应用程序提供灵活的扩展及定制功能。

3. Lua优势在于能够很方便的与其他程序进行集成。(C++、C#、Java ...)

二、Lua与C#的区别

1. Lua几乎可以在所有平台和操作系统中编译运行;而C#只能在特定的操作系统中进行编译生成dll(动态链接库)文件,进而再打      包成相应安装包在其他的平台(iOS、Android ...)上运行。

2. Lua更新代码特别方便,且更新后就直接能在手机上面运行(热更新);C#则需要重新下载安装包(移动平台不能更新代替原来      的dll文件)。

三、Lua基础语法

1. 输出

print("Hello World!")

2. 注释

(1)单行注释

--

(2)多行注释

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

3. 标识符

Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。最好不要使用下划线加大写字母的标示符,因为(比如 _VERSION)被保留用于 Lua 内部全局变量。

Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符且Lua是区分大小写的编程语言。

4. 全局变量

    默认声明的变量就是全局变量。

5. 数据类型

    Lua 中有 八 个基本类型分别为nil、boolean、number、string、userdata、function、thread 及table

//type()函数返回变量或值的类型
print(type("Hello world"))      --> string
print(type(10.4*3))             --> number

(1)nil 数据类型

nil 类型表示一种没有任何有效值,只有一个值 nil。(例如打印一个没有赋值的变量就会输出一个 nil 值)

> print(type(a))
nil
>

(2)boolean(布尔)

   boolean 类型只有两个可选值:true(真) 和 false(假),Lua 把 false 和 nil 看作是"假",其他的都为"真"。

(3)number(数字)

   Lua 默认只有一种 number 类型 是double双精度类型。

(4)string(字符串)

    字符串由一对双引号或单引号来表示。或者可以用 2 个方括号 "[[  ]]" 来表示多行的字符串。

html = [[
<html>
<head></head>
<body>
    <a href="http://www.runoob.com/">菜鸟教程</a>
</body>
</html>
]]
print(html)

  注意:【1】对一个数字字符串上进行算术操作时,Lua 会尝试将这个数字字符串转成一个数字。

             【2】用 # 来计算字符串的长度,放在字符串前面。                  

> len = "www.runoob.com"
> print(#len)
14

             【3】字符串的连接用 ..

> print("a" .. 'b')
ab

(5)table(表)

      【1】table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。

-- 创建一个空的 table
local tbl1 = {}
 
-- 直接初始表
local tbl2 = {"apple", "pear", "orange", "grape"}

      【2】Lua 里表的默认初始索引一般以 1 开始。

--遍历表
local tbl = {"apple", "pear", "orange", "grape"}
for key, val in pairs(tbl) do
    print("Key", key)
end

   输出结果:

Key    1
Key    2
Key    3
Key    4

   【3】 table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。

  

ms1 = {}
for i = 1, 10 do
    ms1[i] = i
end
ms1["key"] = "val"
print(ms1["key"])
print(ms1["none"])

输出结果:val     nil

未完待续...........

猜你喜欢

转载自blog.csdn.net/qq_41967240/article/details/102709675
今日推荐