1. print("打印日志");--单行注释
  2. --[[
  3. 多行注释
  4. --]]
  5. a = --变量的类型,是由变量储存的数据决定

数据类型:
  number:数值类型,可以存储整数和小数
  boolean:布尔类型,只有true和false
  string:字符串类型,单引号和双引号都可以
  type()方法,可以获取一个变量的类型

  1. print(type()) --打印出number
  2. print(type(true)) --打印出boolean
  3. print(type("aaa")) --打印出string

运算符号:
  "+","-","*","/","%" :仅仅指数学意义上的加减乘除取余
  "=" :赋值符号
  "..":连接字符串
  lua没有++ -- += -= *= /= %=
关系符号:

  >大于 <小于 >=大于等于 <=小于等于 ==等于 ~=不等于
逻辑符号:

  and:相当于&& or:相当于|| not:相当于! --]]

  1. print( > and > ) --true
  2. print( > or > ) --true
  3. print(not true) --false

条件语句(lua中没有switch case)

if(布尔表达式)

then

   代码体

elseif(布尔表达式)

then

   代码体

else

   代码体

end

  1. num =
  2. if (num > )
  3. then
  4.    print("A")
  5. elseif (num < )
  6. then
  7.   print("B")
  8. else
  9.   print("C")
  10. end

循环语句

for语句:

for i = 初始值, 省略版条件表达式, 步长 do

  代码体

end

while语句:

while(条件表达式) do

   代码体

end

repeat until语句:

repeat

  代码体 ****注意:条件为false才执行代码体

until(条件表达式)

break立即结束当前循环 lua没有continue

  1. for i = , , do
  2.   print(i)
  3. end
  4.  
  5. num1 =
  6. while(num1 < ) do
  7.   print(num1)
  8.   num1 = num1 +
  9. end
  10.  
  11. num2 =
  12. repeat
  13.   print(num2)
  14.   num2 = num2 +
  15. until(num2 < )

数组:
  数组名 = { 数据1,数据2,数据3,数据n }

  lua数组可以存放多种不同类型数据

  *取数组长度:table.getn(数组名)

  **特别注意:lua数组下标从1开始
lua数组长度不固定,声明数组后,仍然可以增加新的数据(给后续的索引位置继续赋值)

  1. arrayTest = { , true, 1.111 }
  2. for i = , table.getn(arrayTest), do
  3.    print(arrayTest[i])
  4. end
  5.  
  6. --增加新数据
  7. arrayTest[] = "abc"
  8. print(arrayTest[])

函数:

[局部/全局] function 函数名([参数列表])

  函数体

end

特别注意:Lua代码顺序必须先定义函数,才能在下面调用

**Lua可以直接将函数当做参数来传递

  1. --print(Hello()),这里会报错,代码顺序必须先定义函数才能调用
  2.  
  3. --无参无返回值
  4. function Hello()
  5.   print("asdasg")
  6. end
  7.  
  8. --有参有返回值
  9. function Add(a, b)
  10.   return a + b
  11. end
  12. print(Add(, ))
  13.  
  14. --直接将函数当做参数来传递
  15. function AddDel(a, b, func)
  16.   return func(a, b)
  17. end
  18. testnum = AddDel(, , Add)
  19. print(testnum)

变量作用域:

  lua中的变量默认全部是全局变量,就算是声明在函数内的变量,也是全局变量. 如果想在lua中声明局部变量,需要使用"local"关键字声明

  变量的默认值是nil

  1. function Test()
  2.   testValue = "absasd"--全局变量
  3.   print(testValue)
  4.   local a        --局部变量
  5.   print(a)        --nil
  6. end
  7.  
  8. Test()
  9. print(testValue)     --可以直接使用全局变量testValue

函数作用域:

  lua语言中的函数默认全部是全局函数,如果想设置为局部函数需要使用"local"关键字声明

  仅对外部访问有用,相当于访问权限private,public

字符串三种表现形式:
  双引号"string"
  单引号'string'
  两个中括号
  *两个中括号包裹的字符串是原格式输出
  *字符串连接用两个点..

  1. str1 = "test1"
  2. str2 = 'test2'
  3. str3 = [[test3]]
  4. print(str1, str2, str3)
  5. print(str1..str2)

字符串操作:
  string.upper(字符串):字母全部转大写
  string.lower(字符串):字母全部转小写
  string.reverse(字符串):将字符串进行位置反转
  string.len(字符串):返回字符串长度,单个字母数字符号都长度为1,单个汉子长度为2
  string.gsub(原始字符串,旧字符串,新字符串,[替换个数]):替换字符串,返回新的字符串
  在原始字符串中查找旧字符串,如果找到了,就用新字符串把旧的替换掉;
  替换次数可以不写,默认全部替换

  1. print(string.upper("abcd")) --ABCD
  2. print(string.lower("EFGH")) --efgh
  3. print(string.reverse("abc"))--cba
  4. print(string.len("abc")) --
  5.  
  6. strTest1 = "abcde"
  7. strTest2 = string.gsub(strTest1,"abc","a")
  8. print(strTest2) --ade

字符串格式化:

  string.format(字符串格式,变量1,变量2,变量n)
  %s表示字符串
  %d表示整数数字
  %f表示小数,保留有效小数位 %.1f保留1位小数,%.2f保留2位小数

  1. str = string.format("name:%s,age:%d,money:%.2f", "asd", , 1.54321)
  2. print(str)  --name:asd,age:18,money:1.54

lua学习笔记1--基础语法的更多相关文章

  1. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  2. Hive学习笔记:基础语法

    Hive基础语法 1.创建表 – 用户表 CREATE [EXTERNAL外部表] TABLE [IF NOT EXISTS 是否存在] HUserInfo ( userid int comment ...

  3. 【C语言C++编程学习笔记】基础语法,第一个简单的实例编程入门教程!

    C语言/C++编程学习:一个简单的实例 让我们来看一个简单的C语言程序.从下面的程序可以看出编写C语言程序的一些基本特征.   如果你能知道该程序将会在显示器上显示一些内容,那说明你还是知道一些的! ...

  4. PHP学习笔记01——基础语法

    <!DOCTYPE html> <html> <?php // 1.使用$加变量名来表示变量,php是弱类型语言,不要求在使用变量前声明,第一次赋值时变量才被创建 $a ...

  5. 01-Python学习笔记-基础语法

    Python标识符 -d           在解析时显示调试信息 -O           生成优化代码 ( .pyo 文件 ) -S           启动时不引入查找Python路径的位置 - ...

  6. java学习笔记之基础语法(一)

    1.java语言基础由关键字.标识符.注释.常量和变量.运算符.语句.函数和数组等组成. 2.1关键字 定义:被java语言赋予了特殊含义的单词 特点:关键字中所有的字母都是小写. 2.2用于定义数据 ...

  7. Java学习笔记之基础语法(顺序,条件,循环语句)

    顺序结构:自上而下 条件分支选择结构: if条件语句   1,一旦某一个分支确定执行以后,其他分支就不会执行.if后面的条件必须是boolean类型   2,if  后面如果不加大括号,默认相邻的下一 ...

  8. Java学习笔记之基础语法(数据类型)

    8种基本数据类型    整型:   byte[1字节]          short[2字节]        int[4字节]         long[8字节]      1,四种整型之间的区别:申 ...

  9. Python 学习笔记(基础语法 restful 、 Flask 和 Requests)

    input 函数 #!/usr/bin/env python3 name = input("\n\n按下 enter 键后退出.") print(name) print() 在 p ...

随机推荐

  1. cookie和Session是啥?

    HTTP是无状态(stateless)协议 http协议是无状态协议即不保存状态. 无状态协议的优点: 由于不需要保存记录,所以减少服务器的CPU和内存的资源的消耗.毕竟客户端一多起来保存记录的话对于 ...

  2. [Luogu] 子串

    https://www.luogu.org/problemnew/show/P2679 DP f(k,i,j)f(k,i,j)表示分了k段,用了第一个串中的前i个数字,已经构成了第二个串的前j个的方案 ...

  3. HDU3501 Calculation 2 [欧拉函数]

    题目传送门 Calculation 2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  4. 洛谷 P1706 全排列

    可能是最简单的题了……讲真搜索hhh 洛谷 P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: ...

  5. 学习Javascript的编程风格

    Javascript编程风格   Douglas Crockford是Javascript权威,Json格式就是他的发明. 去年11月他有一个演讲(Youtube),谈到了好的Javascript编程 ...

  6. Ubuntu 16.04 一键安装P4开发环境记录

    写在最前 P4开发环境安装可采用陈翔同学的一键安装脚本:p4Installer p4c-bm是P4-14的编译器,p4c是现在主流P4-16的编译器,bmv2是支持P4运行的软件交换机 系统环境 在安 ...

  7. 20.包含min函数的栈 Java

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路 借助辅助栈实现: 压栈时:若辅助栈为空,则将节点压入辅助栈.否则,当当前节点小于 ...

  8. ci框架总结(一)

    在进行数据库操作前一定要先初始化数据库类:$this->load->database(); 在model类中: class Myiapp_model extends CI_Model{ p ...

  9. MAC为Apache2服务器配置多个虚拟主机

    Mac 下自带的 Apache 配置 2016年01月25日 00:25:03 阅读数:1292 参考: http://www.cnblogs.com/snandy/archive/2012/11/1 ...

  10. Elasticsearch 部署以及报错解决

    前言 Elasticsearch 是一个非常值得学习和使用的分布式存储 此次部署将采用 centos6.9 一.初步了解 ES 简谈概念 Elasticsearch 是一个开源的高扩展的分布式全文检索 ...