zoukankan      html  css  js  c++  java
  • Lua Table 操作

    Lua中table类似与C#种的字典,其实就是一个key-value键值对数据结构.来学习下table基本操作

    Table的创建

    myTable = {}                                        --表名后面使用{}赋值,表示一个空的表
    myTable = {name="盘子脸",age=18,isMan=true}          --创建时候就添加键-值
    myTable = {10,20,30,"plateface"}                    --创建数字下标值的table,默认是从1开始

    Table的赋值

    myTable[3] = 34                   --当键是一个数字的时候的赋值方式
    myTable["name"] = "盘子脸"         --当键是一个字符串的赋值方式
    myTable.name = "plateface"        --跟myTable["name"]访问的是同一个value, print(myTable.name) 输出plateface

    Table的访问

    myTable[3]          --当键是数字的时候,只有一种访问方式
    myTable.name        --当键是字符串的时候有两种访问方式
    myTable["name"]

    Table的遍历

    myTable = {10,20,30,40}
    for index=1,table.getn(myTable) do
        print(myTable[index])
    end
        
    for index,value in ipairs(myTable) do
        print(index,value)
    end

    表相关的函数:

    table.conccat 把表中所有数据连成一个字符串
    table.insert 在表中2的位置插入一个
    table.remove 移除指定位置的数据
    table.sort 排序

    通过表来实现面向对象(一)

    Enemy = {}
    local this = Enemy
        
    --定义属性
    Enemy.hp = 100
    Enemy.speed = 12.3
    
    --定义方法
    Enemy.Move = function()
        print("敌人在移动")
    end
    
    function Enemy.Attack()
        print(this.hp," 敌人的HP")
        this.Move()
    end
    
    --调用攻击方法
    Enemy.Attack()

    通过表来实现面向对象(二)

    Apple = {}
    
    --使用:给table添加方法
    function Apple:new()
        Apple.str = "苹果的价格是6元"
        return Apple;
    end
    
    function Apple:toString()
        print(Apple.str)
    end
    
    local a = Apple:new()
    print(a.toString())
    如果你感兴趣,你可以把你妹妹介绍给我
  • 相关阅读:
    HDU 1828 Picture (线段树:扫描线周长)
    [USACO18OPEN] Multiplayer Moo (并查集+维护并查集技巧)
    NOIP2016 天天爱跑步 (树上差分+dfs)
    NOIP2013 华容道 (棋盘建图+spfa最短路)
    NOIP2015 运输计划 (树上差分+二分答案)
    NOIP2018 前流水账
    luogu P2331 [SCOI2005]最大子矩阵
    luogu P2627 修剪草坪
    CF101D Castle
    luogu P2473 [SCOI2008]奖励关
  • 原文地址:https://www.cnblogs.com/plateFace/p/4762218.html
Copyright © 2011-2022 走看看