• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

openresty开发系列13--lua基础语法2常用数据类型介绍

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

openresty开发系列13--lua基础语法2常用数据类型介绍

一)boolean(布尔)
布尔类型,可选值 true/false;

Lua 中 nil 和 false 为"假",其它所有值均为"真"。比如 0 和空字符串就是"真";

local a = true
local b = 0
local c = nil

if a then
    print("a")        -->output:a
else
    print("not a")    --这个没有执行
end

if b then
    print("b")        -->output:b
else
    print("not b")    --这个没有执行
end

if c then
    print("c")        --这个没有执行
else
    print("not c")    -->output:not c
end

二)number(数字)
Number 类型用于表示实数,和 C/C++ 里面的 double 类型很类似。可以使用数学函数 math.floor(向下取整)和 math.ceil(向上取整)进行取整操作。

local count = 10
local order = 3.99
local score = 98.01
print(math.floor(order))   -->output:3
print(math.ceil(score))    -->output:99


三)string(字符串)
Lua 中有三种方式表示字符串:
1、使用一对匹配的单引号。例:'hello'。
2、使用一对匹配的双引号。例:"abclua"。

local str1 = 'hello world'
local str2 = "hello lua"

print(str1)    -->output:hello world
print(str2)    -->output:hello lua


转义字符
string =  hello\',\"\",\\n,\\t


3、字符串还可以用一种长括号(即[[ ]])括起来的方式定义。整个词法分析过程将不受分行限制,不处理任何转义符。
     在 Lua 实现中,Lua 字符串一般都会经历一个"内化"(intern)的过程,即两个完全一样的 Lua 字符串在 Lua 虚拟机中只会存储一份。每一个 Lua 字符串在创建时都会插入到 Lua 虚拟机内部的一个全局的哈希表中。
     另外,Lua 的字符串是不可改变的值,不能像在 c 语言中那样直接修改字符串的某个字符,而是根据修改要求来创建一个新的字符串。Lua 也不能通过下标来访问字符串的某个字符。



它支持一些转义字 符,列表如下
\a  响铃  
\b  退格 (back space)  
\f  提供表格(form feed)  
\n  换行(newline)  
\r  回车(carriage return)  
\t  水平tab(horizontal tab)  
\v  垂直tab(vertical tab)  
\\  反斜杠(backslash)  
\"  双引号(double quote)  
\'  单引号(single quote)

定义:"add\name",'hello' 字符串

local str3 = [["add\name",'hello']]
print(str3)    -->output:"add\name",'hello'


4、字符串连接使用的是 ..
> print("a" .. 'b')
ab

5、字符串与number类型转换
print(tonumber("10") == 10)
print(tostring(10) == "10")

6、使用 # 来计算字符串的长度,放在字符串前面
print(#"this is string")


注意:string不可修改

local a= "this is a";
a = "this is new a ";
local b= "this is new a ";


1)在 Lua 实现中,Lua 字符串一般都会经历一个"内化"(intern)的过程,即两个完全一样的 Lua 字符串在 Lua 虚拟机中只会存储一份。每一个 Lua 字符串在创建时都会插入到 Lua 虚拟机内部的一个全局的哈希表中。

2)Lua 的字符串是不可改变的值,不能像在c语言中那样直接修改字符串的某个字符,而是根据修改要求来创建一个新的字符串。Lua 也不能通过下标来访问字符串的某个字符。
Lua的字符串和其它对象都是自动内存管理机制所管理的对象,不需要担心字符串的内存分配和释放


提供了效率,安全


s='123456789';
s1 = s;
s='abcdwff';

print(s);
print(s1);
--------------------
s='123456789'

local s1 = string.sub(s, 2, 5)
print(s)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【转】Luacoroutine不一样的多线程编程思路发布时间:2022-07-22
下一篇:
Lua For Unity 你使用什么编辑器做开发 ???发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap