English 简体 繁體 Tiếng Việt
  • 注册
  • 教程区 教程区 关注:15 内容:42

    龙途传奇lua基础语法

  • 查看作者
  • 打赏作者
  • 当前位置: 35博客圈 > 龙途引擎 > 教程区 > 正文
    • 2
    • 教程区
    • Lua基础语法(详情可查看Lua程序设计.chm)
      保留字(每个都有单独含义)and        break      do         else       elseif
      end        false      for        function   if
      in         local      nil        not        or
      repeat     return     then       true       until
      while
      注释(注释后代码不会执行)单行注释:–

      多行注释:–[[    –]]

      如下:
      –[[

      print(10)         — no action (comment)

      –]]

      Nil(空值)Lua中特殊的类型,他只有一个值:nil;一个全局变量没有被赋值以前默认值为nil;给全局变量负nil可以删除该变量。

      Booleans(布尔值)两个取值false和true。但要注意Lua中所有的值都可以作为条件。在控制结构的条件中除了false和nil为假,其他值都为真。所以Lua认为0和空串都是真。
      Numbers(数值)表示实数,Lua中没有整数。一般有个错误的看法CPU运算浮点数比整数慢。事实不是如此,用实数代替整数不会有什么误差(除非数字大于100,000,000,000,000)。Lua的numbers可以处理任何长整数不用担心误差。你也可以在编译Lua的时候使用长整型或者单精度浮点型代替numbers,在一些平台硬件不支持浮点数的情况下这个特性是非常有用的,具体的情况请参考Lua发布版所附的详细说明。和其他语言类似,数字常量的小数部分和指数部分都是可选的,数字常量的例子:

      4      0.4    4.57e-3       0.3e12     5e+20

      Strings(字符串)指字符的序列。lua是8位字节,所以字符串可以包含任何数值字符,包括嵌入的0。这意味着你可以存储任意的二进制数据在一个字符串里。Lua中字符串是不可以修改的,你可以创建一个新的变量存放你要的字符串如下:

      a = “one string”

      print(a)          –> one string

      Functions(函数)函数是第一类值(和其他变量相同),意味着函数可以存储在变量中,可以作为函数的参数,也可以作为函数的返回值。如下:

      function 函数名(human)
          return 1      –返回一个数值:1
      end

      算术运算符二元运算符:+ – * / ^  (加减乘除幂)

      一元运算符:-  (负值)

      这些运算符的操作数都是实数。

      关系运算符<      >      <=     >=     ==     ~=

      这些操作符返回结果为false或者true;==和~=比较两个值,如果两个值类型不同,Lua认为两者不同;nil只和自己相等。Lua通过引用比较tables、userdata、functions。也就是说当且仅当两者表示同一个对象时相等。

      a = {}; a.x = 1; a.y = 0

      b = {}; b.x = 1; b.y = 0

      c = a

      a==c but a~=b

      逻辑运算符and    or     not

      逻辑运算符认为false和nil是假(false),其他为真,0也是true.

      and和or的运算结果不是true和false,而是和它的两个操作数相关。

      a and b       — 如果a为false,则返回a,否则返回b

      a or  b        — 如果a为true,则返回a,否则返回b

      例如:

      print(4 and 5)           –> 5

      print(nil and 13)        –> nil

      print(false and 13)      –> false

      print(4 or 5)            –> 4

      print(false or 5)        –> 5

      连接运算符..         –两个点

      字符串连接,如果操作数为数字,Lua将数字转成字符串。

      print(“Hello ” .. “World”)      –> Hello World

      print(0 .. 1)                   –> 01

      优先级从高到低的顺序:
      ^
      not    – (unary)
      *      /
      +      –
      ..
      <      >      <=     >=     ~=     ==
      and
      or
      表的构造构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:

      days = {“Sunday”, “Monday”, “Tuesday”, “Wednesday”,

              “Thursday”, “Friday”, “Saturday”}

      print(days[4])       –> Wednesday

      赋值语句赋值是改变一个变量的值和改变表域的最基本的方法。a = “hello” .. “world”

      t.n = t.n + 1

      局部变量与代码块使用local创建一个局部变量,与全局变量不同,局部变量只在被声明的那个代码块内有效。代码块:指一个控制结构内,一个函数体,或者一个chunk(变量被声明的那个文件或者文本串)。x = 10

      local i = 1              — local to the chunk

      while i<=x do

          local x = i*2        — local to the while body

          print(x)             –> 2, 4, 6, 8, …

          i = i + 1

      end

      控制结构语句(if语句)控制结构的条件表达式结果可以是任何值,Lua认为false和nil为假,其他值为真。if conditions then

          then-part

      end;

      if conditions then

          then-part

      else

          else-part

      end;

      break和return语句break语句用来退出当前循环(for、repeat、while)。在循环外部不可以使用。

      return用来从函数返回结果,当一个函数自然结束时,结尾会有一个默认的return。

      Lua语法要求break和return只能出现在block的结尾一句。

      例如:

      local i = 1

      while a[i] do

          if a[i] == v then break end

          i = i + 1

      end

      函数定义函数有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用;2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。语法:

      function func_name (arguments-list)

          statements-list;

      end;

      函数调用调用函数的时候,如果参数列表为空,必须使用()表明是函数调用。print(8*9, 9/8)

      a = math.sin(3) + math.cos(10)

      print(os.date())

      谢谢分享学习下

      回复

      666

      回复

      请登录之后再进行评论

      登录
      • 热门排行

      暂没有数据

    • 任务
    • 管理
    • 回底部
    • 帖子间隔 侧栏位置: