遍历Table中含Table

2024-02-14 23:08
文章标签 遍历 table 中含

本文主要是介绍遍历Table中含Table,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 迭代法遍历 table,当Table中含Table时,递归调用。打印Table中 K, V值

     

    通过type(arg) 判断当前类型


    table1 = {  

    1.     name = "Android Developer",  
    2.     email = "hpccns@gmail.com",  
    3.     url = "http://blog.csdn.net/hpccn",  
    4.     quote = [[  
    5.     There are  
    6.     10 types of pepole  
    7.     who can understand binary.  
    8.     ]],--多行文字  
    9.     embeddedTab = {  
    10.         em1 = xx,  
    11.         x =0,  
    12.         {x =1, y =2 } -- 再内嵌table  
    13.     }-- 内嵌table   
    14. }  
    15.   


                tab = "    "  

    1. function print_table(t, i)  
    2.     local indent =""                                                    -- i缩进,当前调用缩进  
    3.     for j = 0, i do   
    4.         indent = indent .. tab  
    5.     end  
    6.     for k, v in pairs(t) do   
    7.         if (type(v) == "table") then                                  -- type(v) 当前类型时否table 如果是,则需要递归,  
    8.             print(indent .. "< " .. k .. " is a table />")  
    9.             print_table(v, i + 1) -- 递归调用  
    10.             print(indent .. "/> end table ".. k .. "/>")  
    11.         else                                                                    -- 否则直接输出当前值                    
    12.             print(indent .. "<" .. k .. "=" .. v.."/>")  
    13.         end  
    14.     end  
    15. end  
    16.     
    17. print_contents(table1, 0)  

     

    输出结果:

    for k,v in pairs(table) do 这样的遍历顺序并非是table中table的排列顺序,而是根据table中key的hash值排序来遍历的。

     

    学习重点: 

    1 数据类型的判断: type()

    lua语言中的数据类型主要有:nil、number、string、function、table、thread、boolean、userdata。

    需要确定一个变量的类型时,可以使用内置函数type获取,如下:


     type(“hello world”);              ---->string  

    type(type);                            ---->function  


    type(3.1415);                       ---->number  

    type(type(type));                  ---->string  

     

    2 迭代法 

    pairs 迭代全部的项

    ipairs 迭代以数字做键值的项,且从1 开始


 

这篇关于遍历Table中含Table的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709828

相关文章

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

PHP实现二叉树遍历(非递归方式,栈模拟实现)

二叉树定义是这样的:一棵非空的二叉树由根结点及左、右子树这三个基本部分组成,根据节点的访问位置不同有三种遍历方式: ① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问结点的操作发生在遍历其左右子树之前。 ② LNR:中序遍历(InorderTraversal) ——访问结点的操作发生在遍历其左右子树之中(间)。 ③ LRN:后序遍历(PostorderT

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

通过Ajax请求后台数据,返回JSONArray(JsonObject),页面(Jquery)以table的形式展示

点击“会商人员情况表”,弹出层,显示一个表格,如下图: 利用Ajax和Jquery和JSONArray和JsonObject来实现: 代码如下: 在hspersons.html中: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>会商人员情况表</title><script type="text/javasc

hashmap的存值,各种遍历方法

package com.jefflee;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class HashmapTest {// 遍历Hashmap的四种方法public static void main(String[] args) {//hashmap可以存一个null,把

Knight Moves -uva 简单的BFS遍历

昨天刚学了BFS的遍历,在uva上找了个题敲了出来,感觉还不错,最近敲代码挺有手感的,希望这种状态保持下去 #include<iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX_SIZE 10 + 5#define LEN 100 + 10using namespace std;in

UVa 10820 Send a Table (Farey数列欧拉函数求和)

这里先说一下欧拉函数的求法 先说一下筛选素数的方法 void Get_Prime(){ /*筛选素数法*/for(int i = 0; i < N; i++) vis[i] = 1;vis[0] = vis[1] = 0;for(int i = 2; i * i < N; i++)if(vis[i]){for(int j = i * i; j < N; j += i)vis[j] =

笔试强训,[NOIP2002普及组]过河卒牛客.游游的水果大礼包牛客.买卖股票的最好时机(二)二叉树非递归前序遍历

目录 [NOIP2002普及组]过河卒 牛客.游游的水果大礼包 牛客.买卖股票的最好时机(二) 二叉树非递归前序遍历 [NOIP2002普及组]过河卒 题里面给的提示很有用,那个马的关系,后面就注意,dp需要作为long的类型。 import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publ

css-table

设置table的文字不换行:给th,td添加white-space: nowrap; 设置单元格内容及其边框的距离:使用html的cellpadding属性,还有一种方式设置padding。在CSS中,table, th, td{padding:0;}效果等同于cellpadding="0″。 设置table的单元格边距:border-spacing如果定义一个 length 参数,那么定义的是水