lua是动态类型语言。这表示变量是没有类型的,只有值有。没有类型定义,所有的值有它们自己的类型。
所有的值在lua中都是first-class。这表示所有的值都可以储存在变量中,作为参数传递到方法中,作为结果返回。
lua有8种基本数据类型:nil, boolean, number, string, function, userdata, thread和table。
Nil是值nil的类型,Nil's main property is to be different from any other value;它
时常表示缺少有用的值。Boolean是值true和false的值.nil和false都表示条件否;别的任何值都表示条件是。Number
表示实数(双精度浮点数)。String是字符数组的类型。Lua is 8-bit clean: strings may contain any
8-bit character,including enbedded zeros('\0').
Lua可以调用使用Lua和C编写的函数。
userdata类型可以让任意的C语言数据储存在Lua变量中。这种类型和没有预先在Lua中定义或者操作的内存通信,除了声明和identity test。总之,利用metatables,程序员可以为userdata类型的值定义操作。userdata类型的值不能在Lua中被创建和修改,只有通过C语言的API来进行。这样就保证了主程序的数据的完整性。
thread类型, 独立的执行线程,用来实现coroutines(协同程序?)。不要把Lua线程和操作系统的进程搞混了,Lua即使在那些不支持多进行的操作系统中也支持多线程。
table类型联合arrays实现,也就是说arrays不仅可以被数值数据indexed,其他任何除了nil的数据类型的值都可以。Tables可以是heterogeneous, 也就是说,他们可以包括所有除了nil的值。Lua中的tables有特有的数据结构机制;
他们可以用在普通的数组,symbol tables, 集合,records, graphs, trees等等。用在records,Lua使用field name作为索引。The language supports this representation by providing a.name as syntactic sugar for a["name"].Lua中有很多方便的方式去创建tables.
tables中可以有function。
Tables, function, threads and userdata类型的值是对象:变量并不是实际的储存他们,而是以引用的方式指向他们。
附值,参数传递,返回值都是对引用的操作;这些操作都不依赖于任何形式的拷贝。
分享到:
相关推荐
lua学习笔记
**lua (VC环境) 学习笔记** 在深入学习lua编程语言并将其应用于Microsoft Visual C++(VC环境)时,我们需要了解几个关键知识点。lua是一种轻量级的脚本语言,设计目标是作为嵌入式语言,使得游戏开发、系统管理、...
### Lua基础学习笔记 #### 一、Lua简介与特点 Lua是一种轻量级且高效的脚本语言,广泛应用于游戏开发、网页应用、图形界面等领域。对于已有其他编程语言基础的学习者来说,掌握Lua通常较为迅速。Lua的设计哲学是...
Lua的table元表自我学习笔记分享。--lua元表总结 --1、__index的运用 (调用table的一个不存在的索引时,会使用到元表的__index元方法,搜索元表是否也有改索引,__index可以是一个函数也可是一个table。)
【Lua (VC环境) 学习笔记】 Lua是一种轻量级的、开源的脚本语言,主要用于嵌入式系统和游戏开发。它以其简洁的语法、高效性和易于集成的特点受到广泛欢迎。在VC(Visual C++)环境中使用Lua,可以为C++应用程序提供...
自己学习lua记得笔记,做任务用的~很基础的东西,想要的拿走,免费
【标题】中的“自我学习笔记--LUA;python:网络编程等”表明这是一份包含LUA和Python语言,特别是关于网络编程的学习资料。LUA和Python都是编程语言,广泛应用于游戏开发、脚本编写、自动化任务以及网络服务等领域。 ...
1. ** Lua语法基础 **:Lua的语法简洁明了,易于学习。变量声明不需要指定类型,其数据类型包括数字(浮点数和整数)、字符串、布尔值、表(类似数组或哈希表)、函数以及nil。变量作用域默认为全局,但可以使用...
本项目为《Spring实战》英文原版书籍的Java实现学习笔记与源码分析,包含186个文件,主要采用Java语言编写,辅以HTML、CSS、Lua等语言。文件类型多样,涵盖163个Java源文件、5个HTML文件、2个Git忽略文件、2个...
【Lua学习笔记之表达式】 在Lua编程语言中,表达式是构成程序的基本元素,用于表示计算或逻辑操作。表达式的结果可以是一个值,也可以是一个布尔值,这取决于执行的操作。下面我们将深入探讨Lua中的各种表达式类型...
【cocos2dx_lua开发笔记】是一篇个人实践总结,主要涵盖了使用cocos2dx_lua进行游戏开发的一些关键点,包括...通过学习和理解这些笔记,开发者能够更好地理解和运用cocos2dx_lua进行游戏场景、UI元素和动画效果的构建。
简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因 此 redis 被广泛应用于...除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。
《Cocos2d-x Lua 开发笔记》 在游戏开发领域,Cocos2d-x 是一个广泛应用的开源游戏引擎,以其高效、跨平台的特点深受开发者喜爱。而 Lua 语言作为 Cocos2d-x 的主要脚本语言,因其简洁、易学的特性,使得游戏逻辑...
Lua是一种轻量级的嵌入式脚本语言,它的语法简洁且易于学习,而C++则以其强大的性能和灵活性著称。将两者结合可以让我们在C++程序中利用Lua的便利性编写脚本,进行逻辑控制或动态行为。 一、Lua与C++的交互 1. Lua ...
10. **学习笔记的价值**:他人的学习笔记可能包含实践中的经验总结、常见问题的解决方法,对于初学者来说,是一份宝贵的参考资料。 总的来说,这个资源包提供了一个全面的学习路径,涵盖了从基础的Lua语言学习到在...
Lua的类型与值的学习笔记为我们提供了对这些基础知识的全面了解,对于Lua新手来说是一份宝贵的资料。通过这些知识点的学习,开发者可以更加有效地编写Lua程序,并在日常开发中避免一些常见错误。
该项目是一个多语言编程知识学习笔记设计源码,汇集了185个文件,涵盖JavaScript、TypeScript、HTML、C++、Vue、Python、Lua等多种编程语言,文件类型丰富多样,包括55个JSON文件、28个JavaScript文件、26个...