需要一种简单的脚本语言来代替批处理,它需要足够小巧,同时功能上也应该足够强劲,自然选择了LUA语言。

第一章

Hello World

print(‘Hello World’)
print("Hello World")


字符串可以用'string' 或"string",在一个程序中尽量保持一致性。

本机器LUA的运行环境使用的luadist
C:\Windows\System32>luadist
LuaDist-git 0.2.3 - Lua package manager for the LuaDist deployment system.
Released under the MIT License. See https://github.com/luadist/luadist-git Usage: luadist [DEPLOYMENT_DIRECTORY] <COMMAND> [ARGUMENTS...] [-VARIABLES...] Commands: help - print this help
install - install modules
remove - remove modules
refresh - update information about modules in repositories
list - list installed modules
info - show information about modules
search - search repositories for modules
fetch - download modules
make - manually deploy modules from local paths
upload - upload installed modules to their repositories
selftest - run the selftest of LuaDist To get help on specific command, run: luadist help <COMMAND> C:\Windows\System32>

执行:

C:\Windows\System32>lua
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> print("Hello World")
Hello World
>

LUA中语句之间不需要分隔符;



退出交互模式:

调用os.exit()或CTRL + C或CTRL + Z输入回车

LUA的参数
C:\Windows\System32>lua --help
usage: lua [options] [script [args]].
Available options are:
-e stat execute string 'stat'
-l name require library 'name'
-i enter interactive mode after executing 'script'
-v show version information
-- stop handling options
- execute stdin and stop handling options C:\Windows\System32>

lua -i test.lua

执行完test.lua直接进入交互模式

交互模式下运行lua文件:
dofile("test.lua")

lua -e "print('Hello World')"
E:\MyDocument\Desktop\coding>lua -e "print('Hello World')"
Hello World E:\MyDocument\Desktop\coding>

LUA注释

单行:--print("Hello World")
多行:--[[
print("Hello World")
]]

LUA注释技巧:
---[[
print("Hello World")
--]]
这样可以取消注释

交互模式下打印任何表达式的值得另一个方法
=math.pi

LUA遍历参数:
for i=0,#arg do
print(arg[i])
end
E:\MyDocument\Desktop\coding>lua test.lua "Hello" 1 2 3 4 5
test.lua
Hello
1
2
3
4
5 E:\MyDocument\Desktop\coding>

arg[0]为文件的文件名

第二章

Lua是一种动态类型的语言。在语言中没有类型定义的语法,每个值都带有其自身的类型信息。
输出类型信息:
print(type("123")) --string
print(type(123))--number

在LUA语言中,nil是一种类型,它只有一个值nil,它的主要功能是用于区别其他任何值。
boolean类型:LUA将nil和false认定为假,其他为真
number类型:双精度实数(double)
string类型:LUA中的字符串是不可变值。字符串连接使用 string1.. string2
使用#string来获得字符串的长度

table类型:
table是LUA中唯一的数据结构

arr = {}--空的table
赋值:arr["key"] = value --key既可以是整数,也可以是字符串或其他类型。

使用table表示一个传统的数组:

第三章

取小数点后两位:
lua -e "print(math.pi - math.pi % 0.01)"--输出3.14
table构造式:
days = {"Sunday", "Monday", "Tuesday", "Wednesday",

"Thursday", "Friday", "Saturday"}

days[1]初始化字符串"Sunday"



第四章


LUA支持多重赋值
x,y = y,x -->交换X,Y的值
在多重赋值中,LUA先对等号右边的所有元素求值,然后才执行赋值。
多重赋值一般用于收集函数的多个返回值。如:a,b = function()

i = 10 --全局变量
local j = 100  --局部变量

数字型for
for var = exp1, exp2, exp3 do
  <执行体>
end
var由exp1到exp2步长为exp3

泛型for
for i,v ipairs(arr) do
print(v)
end



LUA学习笔记(第1-4章)的更多相关文章

  1. LUA学习笔记(第18-20章)

    数学库 print(math.pi)-->π print(math.huge)-->Lua中表示的最大数字 --[[ 3.1415926535898 1.#INF ]] print(mat ...

  2. LUA学习笔记(第5-6章)

    x = a or b 如果a为真则x = a 如果a为假则x = b print(a .. b) 任何非nil类型都会被连接为字符串,输出 多重返回值 local s,e = string.find( ...

  3. [转]LUA 学习笔记

    Lua 学习笔记 入门级 一.环境配置 方式一: 1.资源下载http://www.lua.org/download.html 2.用src中的源码创建了一个工程,注释调luac.c中main函数,生 ...

  4. 《深入Java虚拟机学习笔记》- 第19章 方法的调用与返回

    <深入Java虚拟机学习笔记>- 第19章 方法的调用与返回

  5. 《深入Java虚拟机学习笔记》- 第16章 控制流

    <深入Java虚拟机学习笔记>- 第16章 控制流

  6. 《深入Java虚拟机学习笔记》- 第17章 异常

    <深入Java虚拟机学习笔记>- 第17章 异常

  7. 《深入Java虚拟机学习笔记》- 第13章 逻辑运算

    <深入Java虚拟机学习笔记>- 第13章 浮点运算

  8. 《深入Java虚拟机学习笔记》- 第14章 浮点运算

    <深入Java虚拟机学习笔记>- 第13章 浮点运算

  9. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

随机推荐

  1. 基于Github Pages + docsify,我花了半天就搭建好了个人博客

    目录 前言 一些说明 准备工作 上docsify官网看一看 使用docsify命令生成文档站点 部署到Github上 写在最后 前言 "作为一个真正的码农,不能没有自己的个人博客" ...

  2. 【一起学源码-微服务】Ribbon 源码二:通过Debug找出Ribbon初始化流程及ILoadBalancer原理分析

    前言 前情回顾 上一讲讲了Ribbon的基础知识,通过一个简单的demo看了下Ribbon的负载均衡,我们在RestTemplate上加了@LoadBalanced注解后,就能够自动的负载均衡了. 本 ...

  3. 1.2 UML带来了什么(学习笔记)

    需求->需求分析->设计->开发 uml 编号 uml元素 对于语言理解 1 元模型 基本词汇 2 表示法或视图 语法 3 RUP 方法(统一软件开发过程)  方法 4 控制类 定语 ...

  4. 「CH2401」送礼物 解题报告

    CH2401 送礼物 描述 作为惩罚,GY被遣送去帮助某神牛给女生送礼物(GY:貌似是个好差事)但是在GY看到礼物之后,他就不这么认为了.某神牛有N个礼物,且异常沉重,但是GY的力气也异常的大(-_- ...

  5. 基于 HTML5 WebGL + WebVR 的 3D 虚实现实可视化培训系统

    前言 2019 年 VR, AR, XR, 5G, 工业互联网等名词频繁出现在我们的视野中,信息的分享与虚实的结合已经成为大势所趋,5G 是新一代信息通信技术升级的重要方向,工业互联网是制造业转型升级 ...

  6. [AI开发]零代码分析视频结构化类应用结构设计

    视频结构化类应用涉及到的技术栈比较多,而且每种技术入门门槛都较高,比如视频接入存储.编解码.深度学习推理.rtmp流媒体等等.每个环节的水都非常深,单独拿出来可以写好几篇文章,如果没有个几年经验基本很 ...

  7. 解决vs2017创建.net core失败以及不能登录问题

    创建.net core web 提示值不能为空,开始以为是vs安装错误,重新安装了一遍也是这样,之前都好好的,然后登录也不行了(提示我们无法刷新此账号的凭据),百度了下,是ie不能上网的问题.解决了登 ...

  8. Vi的三种模式及其指令

    第一部分:一般指令模式可用按键说明,光标移动,复制粘贴.搜索替代 移动光标的方法: 移动光标的方法 h或(左箭头) 光标向左移动一个字符 j或(下箭头) 光标向下移动一个字符 k或(上箭头) 光标向上 ...

  9. 小白学Java:老师!泛型我懂了!

    目录 小白学Java:老师!泛型我懂了! 泛型概述 定义泛型 泛型类的定义 泛型方法的定义 类型变量的限定 原生类型与向后兼容 通配泛型 非受限通配 受限通配 下限通配 泛型的擦除和限制 类型擦除 类 ...

  10. Frogger POJ - 2253(求两个石头之间”所有通路中最长边中“的最小边)

    题意 ​ 题目主要说的是,有两只青蛙,在两个石头上,他们之间也有一些石头,一只青蛙要想到达另一只青蛙所在地方,必须跳在石头上.题目中给出了两只青蛙的初始位置,以及剩余石头的位置,问一只青蛙到达另一只青 ...