Lua学习----Lua基础数据类型
前言
Lua有6中数据类型,分别是nil(空)、boolean(布尔)、number(数字)、string(字符)、table(表)、function(函数)
在Lua中可以使用type函数来返回一个值或者变量所属的类型,如:
print(type("helle world")) -->output:string
print(type(print)) -->output:function
print(type(true)) -->output:boolean
1.nil(空)
Lua将nil用来表示“无效值”。一个变量再第一次赋值前默认值是nil,将nil赋值给一个全局变量就等同于删除它。
local num
print(num) -->output:nil
num = 100
print(num) -->output:100
num = nil print(num) -->output:nil
2.boolean(布尔)
布尔值可选值为true/false,在Lua中nil和false为“假”,其余都为“真”,比如0和空字符都为真。
3.number(数字)
number用于表示实数,可以使用数学函数math.floor(向下取整),math.ceil(向上取整)
local order = 3.0
local score = 98.5
print(math.floor(order)) -->output:3
print(math.ceil(score)) -->output:99
4.string(字符)
在Lua中,字符串有三种表示方法:
1)使用一对单引号。如:‘hello’
2)使用一对双引号。如:“hello”
3)使用长括号(即[[]])来定义。
注:Lua的字符串中的转移字符不起作用。
Lua的字符串是不可改变的值,不能像再c语言中那样直接修改字符串的某个字符,而是根据修改要求来创建一个新的字符串。
Lua也不能通过下标来访问字符串的某个字符。
local str3 = [["add\name",'hello']]
local str4 = [=[string have a [[]].]=]
print(str1) -->output:hello world
print(str2) -->output:hello lua
print(str3) -->output:"add\name",'hello'
print(str4) -->output:string have a [[]].
5.table(表)
table类型实现了一种抽象的“关联数组”。关联数组是一种具有特殊索引方式的数组,索引通常是字符串或者number类型,但也可以是除nil以外任意类型的值。
6.function(函数)
在Lua中,函数也是一种数据类型,函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值。
函数以end结尾。
local function foo()
print("in the function")
--dosomething()
local x = 10
local y = 20
return x + y
end
local a = foo --把函数赋给变量
print(a())
--output:
in the function
30
Lua学习----Lua基础数据类型的更多相关文章
- Lua 学习之基础篇一<Lua 运算符>
引言 由于刚接触lua,个人觉得接触一门新语言,就要一定要对基础的部分做一个快速了解. 于是参考网上相关资料吸收并整理下来作为笔记,模糊的时候用来回顾一下. 这些部分基本都是经过自己手动测试梳理过,没 ...
- lua学习之基础概念篇
基础概念 程序块 (chunk) 定义 lua 中的每一个源代码文件或在交互模式(Cmd)中输入的一行代码都称之为程序块 一个程序块就是一连串语句或者命令 lua 中连续的语句不需要分隔符,但为了可读 ...
- Lua 学习之基础篇六<Lua IO 库>
引言 I/O 库提供了两套不同风格的文件处理接口. 第一种风格使用隐式的文件句柄: 它提供设置默认输入文件及默认输出文件的操作, 所有的输入输出操作都针对这些默认文件. 第二种风格使用显式的文件句柄. ...
- Lua 学习之基础篇五<Lua OS 库>
lua os库提供了简单的跟操作系统有关的功能 1.os.clock() 返回程序所运行使用的时间 local nowTime = os.clock() print("now time is ...
- Python基础学习Day7 基础数据类型的扩展 集合 深浅copy
一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk' ...
- Lua 学习之基础篇二<Lua 数据类型以及函数库 汇总>
引言 前面讲了运算符,这里主要对Lua的数据处理相关的数据类型和函数库进行总结归纳,后面会再接着单独分开讲解具体使用. 首先因为Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值. 值可以存储 ...
- Lua 学习之基础篇十<Lua 常见的语法规则>
下面讲一些lua 常见的用法和规则,可以为学习理解lua带来帮助,最后附上的部分是lua的基本操作,基本包含所有常用语法语句. 1. if判断 lua把 nil 和false 视为"假&qu ...
- Lua 学习之基础篇七<Lua Module,Package介绍>
Lua 之Module介绍 包管理库提供了从 Lua 中加载模块的基础库. 只有一个导出函数直接放在全局环境中: [require]. 所有其它的部分都导出在表 package 中. require ...
- Lua 学习之基础篇四<Lua table(表)>
table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组.字典等. Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil. Lua ta ...
随机推荐
- Google play(Android market)账户申请
从09年到现在,Google play账户在国内申请一直都是个问题,根本的原因是国内不支持Google wallet(原Google Checkout) 在国内要获取一个Google play账户,常 ...
- centos系列——1
今天开始好好学一下centos,下面记录全过程,以方便后来查阅. 开机后用户名为root. 忘记密码修改方法: 以GRUB 多系统引导程序启动,用GRUB引导系统进入单用户步骤:(1) 启动GRUB, ...
- 用递归法判断字符串A中包含多少个字符串B
string类提供了判断字符串B在字符串A中首次(或最后)出现的Index的方法,但有时候需要判断B在A中出现了多少次. 为此想了一个算法. public static void CountIndex ...
- Appium 截屏截图操作
问题场景:有时当我们的脚本运行报错时,需要通过截屏来分析异常的来源.而selenium也提供了可以截图的方法TakesScreenshot.getScreenshotAs 举例:我们把截屏的图片存储在 ...
- zenefits oa - sort integer array in lexographical order
[ 12 | 2434 | 23 | 1 | 654 | 222 | 56 | 100000 ] Then the output should be: [ 1 | 100000 | 12 | 222 ...
- devenv命令详解
devenv [解决方案文件 | 项目文件 | 任意文件.扩展名] [开关] devenv 的第一个参数通常是一个解决方案文件或项目文件. 如果您希望在编辑器中自动打开文件, 也可以使用任何其他文 ...
- nginx 基本操作
nginx 是什么 nginx 是轻量.高性能的网页服务器,相较 Apache 占有内存小. 下载 https://nginx.org/en/download.html 默认根目录 安装目录下的 ht ...
- ASP.NET MVC过滤器中权限过滤器ValidateAntiForgeryToken的用法(Post-Only)
源参考:https://i.cnblogs.com/EditPosts.aspx?opt=1 用途:防止CSRF(跨网站请求伪造). 用法:在View->Form表单中:<%:Html.A ...
- 【 D3.js 入门系列 --- 6 】 如何让图表动起来
[5.1]节中制作了一个比较完善的图表,但它是静态的,想做出它的动态效果吗?在D3中只需要短短的几行代码即可. 这一节将涉及4个函数的使用. 1.transition() 启动转变效果只需要添加这个即 ...
- ajax处理的方式
1.方式一:在一个web页面中 [System.Web.Services.WebMethod],有点象webservers的方法! 前台: 返回的数据: msg:Object {d: "He ...