在项目中遇到了需要在Lua中计算含中文的字符串的字符串长度。当时想当然的就用了string.len(“确定”) 发现输出时竟然是6!后来才知道 ,由于文件编码格式是UTF-8,所以一个中文是3个字节!所以这也不难解释为何“确定”的长度是6了。 至于UTF-8的前世今生,以及具体格式,网上有很多不错的讲解,以下是一位同行的形象讲解。“先从字符编码讲起。 1、美国人首先对其英文字符进行了编
从本篇博客开始研究一下Lua,现在Lua真得是很火,因为Cocos2d-x写游戏的时候会用到,所以就拿过来学学吧,先从基础的语法开始,然后慢慢的深入。本人也是刚刚学习,希望和学习Lua的大家交流,博客权当笔记,有错误之处还请赐教。当然首先是搭建开发环境了,我的学习背景是Cocos2d-x,所以下载了最新发布的Cocos Code IDE,我们可以在Cocos Code IDE上边新建工程,然后写L
Lua常用语法Lua基础数据类型如下nil 只有值nil属于该类,表示一个无效值(判断为false)任何数据被赋值为nil时,相当于删除。
boolean 包含两个值:false和true。
number 表示双精度类型的实浮点数
string 字符串由一对双引号或单引号来表示
function 由 C 或 Lua 编写的函数
userdata 表示任意存储在变量中的C数据结构
thread 表示
前言在上一篇我们说明了如何基于centos7系统快速搭建lua,本篇将接着说明lua常用的数据类型以及基础语法关键字 下列是
Lua
的关键字,大家在定义常量、变量或其他用户自定义标识符都要避免使用以下这些关键字: 一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION) 被保留用于 Lua 内部全局变量。这个也是上面我们不建议这么定义标识 符的原因。 运算
print("打印日志");--单行注释
--[[
多行注释
--]]
a = 30 --变量的类型,是由变量储存的数据决定 数据类型: number:数值类型,可以存储整数和小数 boolean:布尔类型,只有true和false string:字符串类型,单引号和双引号都可以 type()方法,可以获取一个变量的类型 print(type(123)) --打印出numb
print("打印日志");--单行注释
--[[
多行注释
--]]
a = 30 --变量的类型,是由变量储存的数据决定数据类型: number:数值类型,可以存储整数和小数 boolean:布尔类型,只有true和false string:字符串类型,单引号和双引号都可以 type()方法,可以获取一个变量的类型print(type(123)) --打印出number
条件语句判断时,只有false和nil会导致判断为假,其他的任何值都为真。 Lua 的字符串与编码无关; 它不关心字符串中具体内容。标准 Lua 使用 64 位整数和双精度(64 位)浮点数, 但你也可以把 Lua 编译成使用 32 位整数和单精度(32 位)浮点数。 以 32 位表示数字对小型机器以及嵌入式系统特别合适。table 是一个关联数组, 也就是说,这个数组不仅仅以
其语法简单明了,其本身也非常简明精巧,所有源代码放在一起也不到700KB,编译出来的程序,一般只有几百KB,其运行起来,自然也轻快。语法规则:数据类型:nil,boolean, number, string, function, userdata, thread, table.其中nil表示空。number即可以表示整数,也可以是双精度浮点数。string是可以表示任意长度的字符串或者二进制数据。
Lua表达式 一、Lua表达式可以包含常量、字符串、自变量、一元操作符、函数调用、函数定义和table构造式 二、Lua支持的算术操作符:+加、-减、*乘、/除、^求幂(求开根号后的结果)、%取模(该取模运算符可以用于小数;例3.5%1=0.5;想取小数点后几位的数就用原数减去原数取小数点后几位的摸即可,例:a=5.382,5.38=a-a%0.01)、-负号 三、Lua支持的关系操作符:<
lua内置8种类型:nil, boolean, number, string, userdata, function, thread, table
nil:
将nil赋值给变量相当于将变量删除
boolean:
false/nil被认为是false外,其余都被认为是true,
0也是true
number:
字符编码的前备知识一、字节很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。 **so: 字节是是计算机信息计量单位,一个字节包含八个bit。**
其实从C层的代码看,skynet没有太出彩的地方(也仍然很优秀),有些人草草瞄了几眼C层的代码,就断定skynet很一般:凡是有经验的服务器程序,用个什么东西分分钟就搭出一个skynet之类的话。其实他们不知道,skynet对Lua的封装才是最好的部分,云风前辈对Lua的理解当属国内最顶尖的那几个。这一部分非常细节,也非常难懂,不想了解的人估计不会看,了解了的人大概也已经了解,所以就当是自己的备忘
文章目录一、Lua基础1.1 变量类型1.2 特点二、运算符2.1 数学运算2.2 关系运算2.3 逻辑运算2.4 位运算2.5 其它2.5.1#2.5.2 . .三、数据结构-Table3.1 说明3.2 举例3.3 遍历方式3.3.1 pairs3.3.2 ipairs四、语句4.1 添加注释4.2 赋值4.3 分支4.4 循环五、函数5.1 定义方式5.2 多返回值5.3 高阶函数5.4
一 基本类型可以使用 type 测定给定变量或值的类型一 nil(空)表示一个无效值(在表达式中相当于false)给 全局变量 和 table 表里的变量赋一个 nil 的值,等同于把它们删掉tab = {key1 = "val1", key2 = "val2", "val3"}
for k, v in pairs(tab1) do
print(k.." - "..v)
end
tab1
本文描述Lua是怎样操作/匹配字符串的。概述 orona string 库提供了字符串操作的通用函数,比如说模式匹配、查找、截取子串。在Lua的字符串里,其索引与C语言不同,首字符索引为1而不是0。索引值还可以是负数,解释为反向索引,即从字符串的末位字符开始
在Javascript中,有一种使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式,叫做正则表达式。 正则表达式是由一个字符序列形成的搜索模式。 正则表达式可以是一个简单的字符,或一个更复杂的模式。也可以用于所有文本搜索和文本替换的操作。正则表达式语法:/正则表达式/修饰符(可填可不填)。1:正则表达式修饰符&n
Cocos2d-x-Lua 开发简单的小游戏(记数字踩白块) 本篇博客来给大家介绍如何使用Lua这门语言来开发一个简单的小游戏—记数字踩白块。 游戏的流程是这样的:在界面上生成5个数1~5字并显示在随机的位置上,点击第一个数字,其他数字会显示成白块数字消失,玩家可以通过记住数字的显示的位置点击按顺序消除白块,直到白块消除完,游戏成功。 效果图如下: 先说明一下笔者的开发环境:Xcode 5.1(
Weak表Lua自动进行内存的管理。程序只能创建对象(表,函数等),而没有执行删除对象的函数。通过使用垃圾收集技术,Lua会自动删除那些失效的对象。 Weak表是一种用来告诉Lua一个引用不应该防止对象被回收的机制。 表有keys和values,而这两者都可能包含任何类型的对象。 要注意,只有对象才可以从一个weak table中被收集。记忆函数记忆技术在保持一些类型对象的唯一性上同样有用。
游戏脚本之王 -- Lua学习Lua的数据类型8种数据类型nil ---- 空,表示一个无效的值boolean ---- 布尔值,true:真, false: 假number ---- 表示双精度类型的实浮点数string ---- 字符串function ---- 函数userdata ---- 用户自定义类型, 表示任意存储在变量中的C数据结构thread ---- 表示执行的独立线程,用于执
Lua—元表和元方法 Lua 中的每个值都可以有一个 元表。 这个 元表 就是一个普通的 Lua 表, 它用于定义原始值在特定操作下的行为。 如果你想改变一个值在特定操作下的行为,你可以在它的元表中设置对应域。 元表中的键对应着不同的 event; 键关联的那些值被称为元方法。 在上面那个例子中引用的事件为 “add” , 完成加操作的那个函数就是元方法。 可以用 getmetatabl