首页 > 其他分享 >Lua--学习--7 Table 构建

Lua--学习--7 Table 构建

时间:2023-03-05 13:45:13浏览次数:45  
标签:.. field -- tianjin 40 Lua exp Table

2.5.7 – Table Constructors

Table constructors are expressions that create tables. Every time a constructor is evaluated, a new table is created. A constructor can be used to create an empty table or to create a table and initialize some of its fields. The general syntax for constructors is

	tableconstructor ::= `{´ [fieldlist] `}´
	fieldlist ::= field {fieldsep field} [fieldsep]
	field ::= `[´ exp `]´ `=´ exp | Name `=´ exp | exp
	fieldsep ::= `,´ | `;´

Each field of the form [exp1] = exp2 adds to the new table an entry with key exp1 and value exp2. A field of the form name = exp is equivalent to ["name"] = exp. Finally, fields of the form exp are equivalent to [i] = exp, where i are consecutive numerical integers, starting with 1. Fields in the other formats do not affect this counting. For example,

     a = { [f(1)] = g; "x", "y"; x = 1, f(x), [30] = 23; 45 }

is equivalent to

     do
       local t = {}
       t[f(1)] = g
       t[1] = "x"         -- 1st exp
       t[2] = "y"         -- 2nd exp
       t.x = 1            -- t["x"] = 1
       t[3] = f(x)        -- 3rd exp
       t[30] = 23
       t[4] = 45          -- 4th exp
       a = t
     end

If the last field in the list has the form exp and the expression is a function call or a vararg expression, then all values returned by this expression enter the list consecutively (see §2.5.8). To avoid this, enclose the function call or the vararg expression in parentheses (see §2.5).

The field list can have an optional trailing separator, as a convenience for machine-generated code.

 

 

语法:
表名称={字段List}
字段List=字段1,字段2;字段3,...
字段:构成形式  ,
        1、Name=value  如:city='tianJin'
        2、exp=exp  如:'na'..'me'="lihui".."zhang"
        3、value  如:40 (数值) 男 (字符串)
     4、Name=exp
     5、exp=Value
     6、exp --遵循之前的返回值数量调整原则
例子

 

 

a1='na'
a2='me'
t={[a1..a2]='li'..'Hui';city="tianjin",40,} --最后的一个逗号或分号可有可无
print(t["name"]) --指定KEY 为索引
print(t.city)  ---

             --注意:没有指定key为下表,默认以索引为下表,
print(t[1])  --因为是第一个出现的下标所以是1

结果 :

 

liHui
tianjin
40

 

a1='na'
a2='me'
function mv(a,b) 
        return a,b;
end
t={[a1..a2]='li'..'Hui';city="tianjin",40,mv('first','sencond'),sex='nan'}
 
for i,v in pairs(t) do
    print(v)
end


结果:
40
first
liHui
nan
tianjin

 

a1='na'
a2='me'
function mv(a,b) 
        return a,b;
end
t={[a1..a2]='li'..'Hui';city="tianjin",40,sex='nan',mv('first','sencond')}
 
for i,v in pairs(t) do
    print(v)
end

结果

40
first
sencond
liHui
tianjin
nan

 

标签:..,field,--,tianjin,40,Lua,exp,Table
From: https://www.cnblogs.com/hztech/p/17180335.html

相关文章

  • C++重载底层原理
    好吧,承认是自己浅薄了当被问起C++重载时,嘴角不自觉的微微上扬,然后脱口而出,C++重载的原则:函数名相同,函数参数列表不同(类型、个数、顺序)匹配原则1:严格匹配,找到再调用......
  • 机器学习日志 手写数字识别 pytorch 神经网络
    我是链接第一次用pytorch写机器学习,不得不说是真的好用pytorch的学习可以看这里,看看基本用法就行,个人感觉主要还是要看着实践代码来学习总结了几个点:1.loss出现nan这......
  • 基于禁忌搜索的TSP问题求解仿真输出路线规划图和收敛曲线
    1.算法描述        禁忌搜索(TabuSearch或TabooSearch,简称TS)是对局部搜索(LS)的一种扩展,是一种全局寻优算法,其特点是采用禁忌技术,即用一个禁忌表记录下已经到达过......
  • 加载内核模块-Unknown symbol错误分析
    在调试过程中,发现一个问题,编译生成一个KO文件,insmod加载后报错:Unknownsymbolvar_set_integer(err0)Unknownsymbolparse_arg_eq(err0)问题分析思路:一、用命令查......
  • SQL-排序与分页
    1.排序(ORDERBY)使用:ORDERBY对查询到的数据进行排序操作升序:ASC(ascend)默认不写升序降序:DESC(descend)SELECTemployee_id,salaryFROMemployeesORDERBYsalaryDES......
  • 基于概率论的MATLAB仿真,内容包括非共轭条件下的后验概率的推导,共轭条件下的非完备集
    1.算法描述1.1先验概率的推导        根据贝叶斯概率论可知,某一事件的后验概率可以根据先验概率来获得,因此,这里首先对事件的先验概率分布进行理论的推导。假设测......
  • (数据库系统概论|王珊)第九章关系查询与关系优化:习题
    pdf下载:密码7281专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解目录名词解释简答题应用题名词解释代数优化:是......
  • 跨平台`ChatGpt` 客户端
    跨平台ChatGpt客户端一款基于Avalonia实现的跨平台ChatGpt客户端,通过对接ChatGpt官方提供的ChatGpt3.5模型实现聊天对话实现创建ChatGpt的项目名称,项目类型是Avaloni......
  • 软件设计与体系结构第一次分享
    1.单一职责原则:就是对于类来说,一个类应该只负责一项职责,规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分,也就是说,接口的职责并不是单一的,而是包含两个职责(......
  • Azure China 中 VDI session host的监控
    再来继续谈谈AzureChina中AVDsessionhost的监控问题,之前说了WVDAgentHealthStatus这个query目前在21vAzure中还不可用,既然这样的话,想用LogAnalytics来监控看来是实现不......