• 《Programming in Lua 3》读书笔记(三)


    因为前段时间返校进行毕业论文答辩,就好久都没有更新博客了。毕业了,然后该干啥就干啥吧,毕业没有失业,应该小小的庆幸一番。

    之前的第二篇读书笔记记录到了第二章的倒数第二点,剩下没有记录table相关。接触过Lua的朋友都说,很多时候Lua就是围绕着table在写东西,由此可见table的重要性吧。第二章大致的介绍了下Table的相关用法,在此记录一下。

    2.5 Table

    首先第一点要注意的是,Table的索引是非常灵活的,书中也介绍到了table不仅可以以下标index为索引,还可以使用除nil之外的Lua所支持的类型做为索引,所以这里体现出了其灵活性。

    Table的形式:

    a = {}

    关于Table的一些用法:

    a = {y = 10}   --一个table,键=y,值=10
    x = "y" --
    --注意这里的索引方式,这里很容易混淆
    print(a[x])
    print(a.y)
    print(a["y"])
    

    由上可以看出Table使用起来的灵活性,关于其索引方式我感觉有点容易混淆。在此我使用的一种很笨的方式:如果使用"[]"这种方式索引,那么"[]"里面的值就一定得是双引号下的键,可以是[y],或者x = "y";[x],如果使用"."这种方式索引,那么点号后面就直接是table的键。


    可以使用"="将一个Table传递给另外一个变量(不知道这个到底该怎么说),如下:

    a = {x = 10}
    b =  a
    print(b.x)  --10

    这种语法的支持特性为灵活使用Table奠定了基础,关于这个知识点在后文还得复习一遍,该如何表述还不是很清楚。

    当我们不需要某个table的时候,可以通过给其赋值nil来使系统自动回收内存,这里需注意:

    a = {x = 10}
    b = a
    a = nil
    --在将nil赋值给a之后,系统回收a占用的内存,但此时b依旧可以使用,即可以使用b.x
    print(b.x) --10
    print(a.x) --error


    在使用Table的时候,不必要申请内存大小,只需要根据自己所需使用即可。


    需要注意的是,假如我们使用数字为索引,Table是以1开始进行索引的。


    得到table的长度的方法:#


    2.6 Function

    关于Function的知识后续内容有详细的介绍,大致觉得需要注意的是其返回值是可以有多个的,Lua支持调用用Lua写的函数和用C写的函数。


    2.7 Userdata and Threads

    这两点在第二章没有过多的介绍,提到了会在后续章节有详细的介绍,那就在后文在说吧。

  • 相关阅读:
    linux中read用法
    apt-get 使用指南
    linux文件系统
    KMP
    在C#中的各种应用
    A*算法,遗传算法
    Dijkstra算法,Floyd算法
    AE开发tips
    TOC 右键菜单
    ubuntu下的一些意外
  • 原文地址:https://www.cnblogs.com/zhong-dev/p/4044587.html
Copyright © 2020-2023  润新知