zoukankan      html  css  js  c++  java
  • lua学习笔记1--基础语法

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

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

    print(type(123)) --打印出number 
    print(type(true)) --打印出boolean 
    print(type("aaa")) --打印出string 

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

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

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

    print(5 > 3 and 6 > 5) --true 
    print(5 > 3 or 5 > 10) --true 
    print(not true) --false

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

    if(布尔表达式)

    then

       代码体

    elseif(布尔表达式)

    then

       代码体

    else

       代码体

    end

    num = 10
    if (num > 5)
    then
       print("A")
    elseif (num < 4)
    then
      print("B")
    else
      print("C")
    end

    循环语句

    for语句:

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

      代码体

    end

    while语句:

    while(条件表达式) do

       代码体

    end

    repeat until语句:

    repeat

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

    until(条件表达式)

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

    for i = 0, 10, 1 do
      print(i)
    end
    
    num1 = 0
    while(num1 < 10) do
      print(num1)
      num1 = num1 + 1
    end
    
    num2 = 0
    repeat
      print(num2)
      num2 = num2 + 1
    until(num2 < 10)

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

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

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

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

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

    函数:

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

      函数体

    end

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

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

    --print(Hello()),这里会报错,代码顺序必须先定义函数才能调用
    
    --无参无返回值
    function Hello()
      print("asdasg")
    end
    
    --有参有返回值
    function Add(a, b)
      return a + b
    end
    print(Add(1, 2))
    
    --直接将函数当做参数来传递
    function AddDel(a, b, func)
      return func(a, b)
    end
    testnum = AddDel(10, 20, Add)
    print(testnum)

    变量作用域:

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

      变量的默认值是nil

    function Test()
      testValue = "absasd"--全局变量
      print(testValue)
      local a        --局部变量
      print(a)        --nil
    end
    
    Test()
    print(testValue)     --可以直接使用全局变量testValue

    函数作用域:

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

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

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

    str1 = "test1"
    str2 = 'test2'
    str3 = [[test3]]
    print(str1, str2, str3)
    print(str1..str2)

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

    print(string.upper("abcd"))    --ABCD
    print(string.lower("EFGH"))    --efgh
    print(string.reverse("abc"))--cba
    print(string.len("abc"))    --3
    
    strTest1 = "abcde"
    strTest2 = string.gsub(strTest1,"abc","a")
    print(strTest2)    --ade

    字符串格式化:

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

    str = string.format("name:%s,age:%d,money:%.2f", "asd", 18, 1.54321)
    print(str)  --name:asd,age:18,money:1.54
  • 相关阅读:
    Python python __def__ Exception AttributeError: "'NoneType' object has no attribute
    Python sys.argv[]用法
    Python 编写通过DOS压缩的例子遇到的几个问题
    DOS rar压缩
    Oracle游标介绍
    C#保存日志文件到txt中,可追加保存,定时删除最后一次操作半年前日志文件
    VS2008生成解决方案卡顿、龟速
    VS工具箱中添加DevExpress控件
    CLR 无法从 COM 上下文 0x208f68 转换为 COM 上下文 0x2090d8,这种状态已持续 60 秒
    命名空间"xx"已经包含了"xx"的定义
  • 原文地址:https://www.cnblogs.com/xianguoguo/p/11341719.html
Copyright © 2011-2022 走看看