zoukankan      html  css  js  c++  java
  • lua语言初探

    写在最前面

    《cocos2d-x lua核心编程》是我首次购买电子书,坑的就不谈了,书里的代码部分基本上不是少空格就是多换行,让阅读变得十分困难。

    所以又购买了实体书,加上看一些大佬视频和博客,这才慢慢步入正轨,当然我的lua水平不高,仅作为游戏开发的工具,写这一系列的博客,希望能够让又同样想法的朋友少走弯路。

    简介安装什么就不说了。

    Lua的代码规范

      - Lua的多条语句之间并不要求任何分隔符,如C语言的 ";",换行符也同样不能起到语句的分割作用。

    a =1 
    b= 2*a
    a=1 b=2*a

      - 通过dofile()方法引用其他Lua文件中的函数.

    dofile(D:/test.py)

      -变量命名规范:

        由数字字母下划线构成,但是不能数字和下划线开头

      - lua的注释

        单行注释:

    -- 这是注释

        多行注释:

    --[
    这是注释
    ]--

    lua的基本数据类型

    lua是一种动态类型的语言,其语言本身没有提供类型定义的语法,每个值都携带了它自身的类型信息。在lua中有8中基础类型,分别为

    nil,boolean,number,string,userdata,function,thread和table。变量的类型信息可以通过type函数获得。

    nil:

      nil就是空,它只有一个值nil,它的主要功能是由于区别其他任何值。一个全局变量在第一次赋值前的默认值就是nil。

    boolean:

    布尔类型,包括两个值,true和false,在lua中只有当值是false和nil时才为假,其他时候都为真。

    number:

    数字,用于表示实数。

    string:

    lua中的字符串代表的是一个字符序列,修改字符串得到的是新的字符串。

    table:

    lua中table类型视为关联数组,就像c++中的map,差别是lua中的table的键是可以为除nil外的任何类型,没有长度限制,可任意添加。

    function:

    在lua中,函数可以存储在变量中,可以通过参数传递其他函数,还可以作为函数的返回值。

    userdata:

    lua的自定义类型。

    表达式

    1,算术操作符

      lua的算术操作符为常规的,有+,-,*,/,%()取模等。

    2,关系操作符

      >=,<=,==,~=

    3,table构造器

      构造器用于构建和初始化table,构建空构造器。

    days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
    for i = 1,#days do
        print(days[i])
    end
    --输出结果为
    --Sunday
    --Monday
    --Tuesday
    --Wednesday
    --Thursday
    --Friday
    --Saturday

    语句

    1,赋值语句

      lua中赋值语句和python基本相同,支持解构赋值。

    2,局部变量与块

      局部变量通过local i = n 进行定义。

    1 while i <= x do
    2     local x = i * 2
    3     print(x)
    4     i = i + 1
    5 end

    3,控制语句

      - if ...then...else

        if a < 0 then 
            b = 0
        else
            b = 1
        end

      - if ...elseif...then...else

        if a < 0 then 
            b = 0
        elseif a == 0 then
            b = 1
        else
            b = 2
        end

      - while ..do..

        local i= 1
        while a[i] do
            print(a[i])
            i = i + 1
        end

      - repeat...until,相当于 do while

      - for,在lua中,分为泛型for循环和数字型for循环,数字型for循环相当与python中的 for i in range (1,3,1),泛型for循环就是遍历数组或者table等。

        for var = begin, end, step do --如果没有step变量,begin的缺省步长为1。
            i = i + 1
        end

    函数

    1,lua中的函数接收不同长度的参数,在函数定义的()协商。。。

    2,在lua中,函数和其他所有值一样都是匿名,即它们都没有名称。在使用时都是操作该函数的变量 ,操作时都是操作持有该函数的变量。

    function foo(x)
        for i in var=1,100 do
            i=i+1
        end
    end
  • 相关阅读:
    多表联合查询,利用 concat 模糊搜索
    order by 中利用 case when 排序
    Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
    ASP.NET Core 2.2 基础知识(十八) 托管和部署 概述
    ASP.NET Core 2.2 基础知识(十七) SignalR 一个极其简陋的聊天室
    ASP.NET Core 2.2 基础知识(十六) SignalR 概述
    ASP.NET Core 2.2 基础知识(十五) Swagger
    ASP.NET Core 2.2 基础知识(十四) WebAPI Action返回类型(未完待续)
    linux磁盘管理 磁盘查看操作
    linux磁盘管理 文件挂载
  • 原文地址:https://www.cnblogs.com/cuiyuanzhang/p/9475596.html
Copyright © 2011-2022 走看看