Lua语言快速入门

目录Lua语言快速入门前言Lua语言的特性Lua语言的不足Lua推荐库Lua的数据类型Lua语言快速入门本教程服务于在CoppeliaSim中使用Lua语言编写脚本的小伙伴快速掌握Lua语言。前言Lua语言使用越来越广泛,在最新的编程语言排行榜上逐渐靠前,它用途广泛,尤其是游戏行业,几乎就是游戏开发的标准逻辑语言,被众多知名游戏和引擎所采用,比如:魔兽世界,CryEngine等。机器人和自动化环境的仿真也可以认为是某种“游戏”,所以CoppeliaSim(VREP)使用Lua语言来编写脚本。本教程
摘要由CSDN通过智能技术生成

Lua语言快速入门

本教程服务于在CoppeliaSim(Vrep)中使用Lua语言编写脚本的小伙伴快速掌握Lua语言。

前言

Lua语言使用越来越广泛,在最新的编程语言排行榜上逐渐靠前,它用途广泛,尤其是游戏行业,几乎就是游戏开发的标准逻辑语言,被众多知名游戏和引擎所采用,比如:魔兽世界,CryEngine等。机器人和自动化环境的仿真也可以认为是某种“游戏”,所以CoppeliaSim(VREP)使用Lua语言来编写脚本。

本教程基本上是以Programming in Lua为蓝本的,希望可以帮助有编程基础的相关人员快速的了解这Lua语言,也着重讲解一些Lua在开发应用中要注意的要点,如果要更加全面系统的了解Lua编程,可以参阅Programming in Lua这本经典的LUA编程书籍。

Lua语言的特性
  • Lua是一个小巧,简单,强大的脚本语言,使用方便,跨平台,容易和C/C++整合扩展。
  • Lua提供的机制是C/C++不善于的:高级语言、动态结构、简洁、易于测试和调试等。
  • Lua具有良好的安全保证,自动内存管理,简便的字符串处理功能及其他动态数据的改变。
  • Lua是脚本语言中最高效的。
Lua语言的不足
  • Lua语言本身不支持面向对象的设计(可以通过table模拟)
  • Lua是一个很需要DIY的语言,没有大而全的库,很多功能要程序员自己实现(XML,深拷贝等)
  • 缺乏一些方便高效的数据结构,如堆栈,队列等
Lua推荐库

因为是用于机器人控制,所以这里推荐的都是与科学计算有关的库。

  • Lua-matrix: 纯Lua的矩阵库
  • SciLua: 开源的科学计算库
  • Torch: 使用Lua编写的机器学习库

SciLua官网列出了与C语言和Julia语言相比的性能,想要详细了解的可以去官网查阅。
在这里插入图片描述

Lua的数据类型

Lua是动态类型语言,变量不要类型定义(弱类型语言)

Lua中有8个基本类型:

nil、boolean、number、string、 function、 table、userdata和 thread

--//Lua的数据类型
local a	---->初始化为nil
print(a)
a = true  --boolean
print(a)
a = 1	  --number
print(a)
a=0.4       --默认情况下,lua的实现用双精度浮点来表示内部的number
print(a)
a = "hello lua"	
print(a)
a = "hello lua\nhello world"
print(a)

运行结果:

nil
true
1
0.4
hello lua
hello lua
hello world

table类型:table是Lua中唯一的数据结构,一般使用table来表示数组和哈希表(HashTable)。

数组
  • 在Lua中通过整数下标访问表中的元素即可简单的实现数组。并且数组不必事先指定大小,大小可以随需要动态的增长。
  • 在Lua的使用习惯上,数组的下表从1开始,Lua的标准库与此习惯保持一致,因此如果你的数组下标也是从1开始,你就可以直接使用标准库的函数,否则就无法直接使用。
--//table表示数组
a = {
   1, 2, 3, 4}
print(a[1], a[2], a[3],a[4])

--多维数组
mt = {
   } -- create the matrix 
for i=1,3 do 
	mt[i] = {
   } -- create a new row行 
	for j=1,4 do 
		mt[i][j] = 0 
	end 
end
print(mt[2][2])

运行结果:

1	2	3	4
0
哈希表

哈希表(HashTable)又叫做散列表,是根据关键码值(即键值对)而直接访问的数据。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值