需要一种简单的脚本语言来代替批处理,它需要足够小巧,同时功能上也应该足够强劲,自然选择了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. 《图解机器学习-杉山将著》读书笔记---CH5

    CH5 稀疏学习 重点提炼 提出稀疏学习的缘故: 虽然带有约束条件的最小二乘学习法结合交叉验证法,在实际应用中是非常有效的回归方法,但是,当参数特别多时,计算参数以及预测值需要大量时间.此时,我们要解 ...

  2. Python学习中的“按位取反”笔记总结

    | 疑惑 最近在学习Python的过程中了解到位运算符,但对于按位取反有点迷糊,就比如说~9(按位取反)之后的结果是-10,为什么不是6呢?所以下面就来看看为什么不是6,正确结果是如何计算出来的呢? ...

  3. 键盘优雅弹出与ios光标乱飘解决方案

    前言 在移动开发中,会遇到这样的情况,比如说有一个输入框在最底部的时候,我们弹起输入框,输入框不会在输入键盘上. 说明白简单点就是,输入框被键盘挡住了.而且在原生中,输入框应该正好在输入键盘上,但是h ...

  4. 【5min+】闪电光速拳? .NetCore 中的Span

    系列介绍 简介 [五分钟的DotNet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的. ...

  5. php获取本年、本月、本周时间戳和日期格式

    时间戳格式: //获取今日开始时间戳和结束时间戳 $beginToday=mktime(0,0,0,date('m'),date('d'),date('Y')); $endToday=mktime(0 ...

  6. sin 与 cos 的用法

    这两个函数使用过程中要,如 sin(x) , x 在这里表示的是弧度,至于弧度要如何计算呢 ? pi / 180 = 弧度 / 角度 内部的参数可以整数或者浮点数,以前面做过的一道题而言,大量的调用函 ...

  7. get_字段_display()

    gender_choices = ((1, '男'), (2, '女')) gender = models.IntegerField(verbose_name='性别', choices=gender ...

  8. 1.异常(Error和Exception)

    什么是异常 比如上午我们一般是开车去上班,正常情况下,一般都不会迟到,但是今天突然有个问题,车坏了或者限行了,于是乎你改坐公交了,就有可能会迟到,这就属于一种异常的情况.在实际生活中呢,可能会遇到很多 ...

  9. 7.Java帝国的诞生

    1972年,C诞生,而Java是1995年诞生的.它贴近硬件,有汇编语言的特性,运行极快,效率极高.早期,用在操作系统.编译器.数据库.网络系统等.但它有两把沉重的枷锁一直在程序员身上,那就是指针和内 ...

  10. OAuth2.0的那点荒唐小秘密 -几个简单概念和原理

    OAuth2.0这个名词你是否在项目中时常听到呢?是否觉得好像懂,又好像不太懂呢? 最近一直想写篇关于OAuth2.0的东西,记录下我的学习与感悟,然各种理由的拖延,直到今日才静下心来写下这篇博客.当 ...