需要一种简单的脚本语言来代替批处理,它需要足够小巧,同时功能上也应该足够强劲,自然选择了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. $Poj1737\ Connected\ Graph$ 计数类$DP$

    AcWing Description 求$N$个节点的无向连通图有多少个,节点有标号,编号为$1~N$. $1<=N<=50$ Sol 在计数类$DP$中,通常要把一个问题划分成若干个子问 ...

  2. 1053 住房空置率 (20 分)C语言

    在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为"可能空置&quo ...

  3. js动态改变下拉框内容

    今天为大家分享一篇js动态设置select下拉菜单的默认选中项实例,具有很好的参考价值,希望对大家有所帮助. 代码实例如下: <!DOCTYPE html> <html lang=& ...

  4. 为什么大家都说Java中只有值传递?

    最近跟Java中的值传递和引用传递杠上了,一度怀疑人生.查了很多资料,加上自己的理解,终于搞清楚了,什么是值传递和引用传递.也搞明白了,为什么大家都说Java只有值传递,没有引用传递.原来,我一直以来 ...

  5. Redis 千万不要乱用KEYS命令,不然会挨打的

    Redis现如今使用的场景越来越多?如何批量删除key呢? 有人说用KEYS命令,刚开始学Redis的时候就是用这个命令列出库中键. KEYS命令要谨慎使用. 为何?客观别急,我们先一步步来看. KE ...

  6. Linux下搭建C/C++编程环境

    Linux下搭建C/C++编程环境 1.KDevelop下载 wget -O KDevelop.AppImage https://download.kde.org/stable/kdevelop/5. ...

  7. linux下卸载旧版本cmake安装新版本cmake

    1.看当前cmake版本 cmake --version 2.卸载旧版本下的cmake apt-get autoremove cmake 3.安装新版面cmake http://www.cnblogs ...

  8. 源码分析Kafka 消息拉取流程

    目录 1.KafkaConsumer poll 详解 2.Fetcher 类详解 本节重点讨论 Kafka 的消息拉起流程. @(本节目录) 1.KafkaConsumer poll 详解 消息拉起主 ...

  9. 2、Vue实战-配置篇-npm配置

    引言: 如果刚开始使用 vue 并不了解 nodejs.npm 相关知识可以看我上一篇的实践,快速入门了解实战知识树. Vue实战-入门篇 上篇反思: 1.新的关注点:开发 vue 模板.如何使用本地 ...

  10. 小程序中button标签的open-type属性

    open-type (微信开放能力):合法值中的其中之一: getUserInfo  说明:引导用户授权     而获取用户信息,可以从bindgetuserinfo回调中获取到用户信息 而按钮的bi ...