Wifi-nodeMCU-esp8266 开发语言 Lua 介绍 | 学习笔记

简介: 快速学习 Wifi-nodeMCU-esp8266 开发语言 Lua 介绍

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:Wifi-nodeMCU-esp8266 开发语言 Lua 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11205


Wifi-nodeMCU-esp8266 开发语言 Lua 介绍

内容介绍

一.Lua 语言特点

二.   Lua 基于 ubuntu 环境搭建流程

三.Lua 语言快速入门简要总结

 

如果想要完成更复杂的工作,更强大的开发,那些了解 lua 语言。在上节课程中打印 hello 时使用的语句 print()与其他语言有些区别例如 C 语言,首先 lua 语言print()后没有分号,C 语言中使用 printf()打印语句;两种语言相似,但是还有一点区别。

 

一.Lua 语言特点

Lua 于 1993 年开发,来自巴西里约热内卢天主教大学的小巧脚本语言;包括商业用途均开源免费,所以应用广泛;目的是应用于灵活的嵌入式应用开发,lua 语言整个引擎之前讲过一共才两万行代码;纯 C 语言写成,可以与 C/C++ 互相调用。

高效、轻量级、跨平台、易移植、可扩展;最主要支持面向过程、面向对象、封装、继承、复合数据结构表,虽然说 lua 语言简单但是支持面向过程和面向对象,而且其中还有一个非常重要的数据结构即数据结构表或数据表;应用于游戏开发、脚本编程、web 应用、MySQL 插件、系统安全等。如果是单纯的了解 lua 语言可以从网上查找资料或者查看文档  lua 中文教程;lua 中文教程是一本电子书,其中讲解比较全面如全局变量,语法,算术运算,逻辑运算,赋值包括后面的管道等等所用知识点都有涉及。

 

二.  Lua 基于 ubuntu 环境搭建流程

如果想要学习 lua 语言,建议搭建一个基于 ubuntu 环境。搭建方法有两种,第一种是基于源码的搭建第二种是直接安装命令。

基于 ubuntu 源码搭建首先获取源码:http://www.lua.org/ftp

/lua-5.3.5.tar.gz;其次下载依赖库:sudo apt-get install libreadline-dev;最后进行编译:make linux test 。编译完成会生成命令 lua,然后设置环境变量export PATH=$PATH:/home/user/lua

/lua-5.3.5/src;接下来编写测试程序:t.lua;创建 t.lua并编写 print(“hello world”)

image.png

执行 t.lua,因为本次没有采用环境变量的安装可以直接执行语句 lua5.3 t.lua

image.png

只是一个脚本,于 shell  语言类似(shell 语言前是 具体的 shell 是 sh 或者 bash ),例如 bash xx.sh(某一脚本);执行 python 效果类似如 python xxx.py

image.png

对应 lua 语言可以根据搭建的环境,对照电子书 lua 中文教程去学习,一共二十个关键字大部分语法与 C 语言类似,是一个脚本不需要编译写完脚本可以直接运行。

 

三.Lua 语言快速入门简要总结

本次课程不会对每一个语法详细讲解,但是会对其进行总结,能够在几分钟快速了解 lua 语言并且在使用过程中进一步熟悉。

首先语句通过空白或分号隔开,大部分时间使用空格,如果一行写多个语句紧挨在一起时最好要加分号,其他时候使用空格即可;条件、循环、函数中的复合语句不是用花括号{}与 python 相似,而是用 do 代码块 end 表示语句代码块的开始和结束 (python 使用字表符,缩进表示)。而花括号在 lua 语言中表示的为一个表结构,与 c 语言数组相似,表结构在 lua 语言中非常重要除了基本语句外只有一种构造类型即表结构。运算符^:表示幂运算例如 2^10=1024,而在 C 语言中表示按位异或,在 lua 语言中确实没有提供 位运算 的运算符但是它支持位运算的函数接口,想要实现某个数与某个数的异或,与或非可以调用一个函数并且通过结果返回位运算的结果。

Lua 语言中不等于符号 ~=,而其他语言不等于符号为!=。在 lua 语言中注释语句使用 #,C 语言注释符号//。变量的定义不需要加数据类型,直接写变量名赋值就行,例如 a=10,没有只区分是整型还是浮点型要是数值都是双精度类型。逻辑运算与(and)、或(or)运算返回不是 true/false,其他语言大部分是返回 true 或 false,而是运算符左边或右边的变量值与运算顺序有关后面会详细说明。

其他语言/ 表示 0,NULL,false 也表示 0,而在 lua 语言除了 nil、false 为假,其余值均为真(0和空串“”也为真)不认为数值零为假,用 nil,false 表示假。

变量的赋值可以多个一起赋值例如对a,b,c赋值不用一个一个变量赋值可以直接对abc 赋值,a,b,c=10,20,30;所以交换变量就可以简写成 a,b=b,a。函数可以返回多个值 (return a,b,c),函数返回一般调用一个函数如 ret=fun(),得到返回结果如果只写 ret=fun()可能只能得到一个数值,如果想要返回多个结果可以编写语句:ret1,ret2=fun();相当于得到 a 与 b 的返回值。另外 lua 语言简单,除了基本类型外只用一种构造类型,Lua 中构造类型只有唯一的一个表(table),表结构可以完成数组、结构体、键值对、列表字典、集合、封装、继承等数据结构给表结构赋予了很多功能。Print()不能输出 nil 和表结构,不能直接输出一个表需要把表中内容提取出然后输出。

在很多语言中数组下标从 0 开始,而 lua 数组下标从 1 开始,而不是 0。数据结构与方法主要以变量形式出现,除了关键字。复合语句块中定义局部变量必须用local。

最后详细语法,请参考资料《Lua中文教程.pdf》。不建议通读 Lua 中文教程.pdf,只需要把 lua 快速入门看完即可。在学习过程中有不明白的可以百度或者在 Lua 中文教程 .pdf 中查找,没有必要一一观看。这是对 lua 语言简单介绍。

相关文章
|
10月前
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块(下)
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块
100 0
|
消息中间件 数据采集 域名解析
数据采集-Lua集成kafka流程跑通|学习笔记
快速学习数据采集-Lua集成kafka流程跑通
458 0
数据采集-Lua集成kafka流程跑通|学习笔记
|
数据采集 前端开发 大数据
Lua 获取 Get 与 Post 请求数据|学习笔记
快速学习 Lua 获取 Get 与 Post 请求数据
2453 0
Lua 获取 Get 与 Post 请求数据|学习笔记
|
9月前
|
C++
[笔记]Lua脚本学习笔记《二》调用cpp动态库
[笔记]Lua脚本学习笔记《二》调用cpp动态库
|
9月前
|
SQL JSON 安全
[笔记]Lua脚本学习笔记《一》
[笔记]Lua脚本学习笔记《一》
|
10月前
|
负载均衡 应用服务中间件 测试技术
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块(上)
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块
370 0
|
缓存 算法 前端开发
网站流量日志埋点收集—后端脚本(nginx+lua)|学习笔记
快速学习网站流量日志埋点收集—后端脚本(nginx+lua)
527 0
网站流量日志埋点收集—后端脚本(nginx+lua)|学习笔记
|
消息中间件 数据采集 Java
Lua集成kafka第三方插件代码介绍|学习笔记
快速学习Lua集成kafka第三方插件代码介绍
113 0
Lua集成kafka第三方插件代码介绍|学习笔记
|
数据采集 NoSQL Java
Lua 脚本读取 redis 数据|学习笔记
快速学习 Lua 脚本读取 redis 数据
708 0
Lua 脚本读取 redis 数据|学习笔记
|
数据采集 大数据 应用服务中间件
Lua 获取 Header 与 Body 数据|学习笔记
快速学习 Lua 获取 Header 与 Body 数据
857 0
Lua 获取 Header 与 Body 数据|学习笔记