zoukankan      html  css  js  c++  java
  • 《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

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

  • 相关阅读:
    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
    Visual Studio断点调试, 无法监视变量, 提示无法计算表达式
    ASP.NET MVC中MaxLength特性设置无效
    项目从.NET 4.5迁移到.NET 4.0遇到的问题
    发布网站时应该把debug设置false
    什么时候用var关键字
    扩展方法略好于帮助方法
    在基类构造器中调用虚方法需谨慎
    ASP.NET MVC中商品模块小样
    ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积02, 在界面实现
  • 原文地址:https://www.cnblogs.com/zhong-dev/p/4044587.html
Copyright © 2011-2022 走看看