Tcl数组命令之array
array
array option arrayName ?arg1 arg2 ... argN?
操作名为arrayName的数组,option选项决定了执行什么操作。option支持以下选项:
set
array set arrayName list
向数组中添加一个或多个元素,list由偶数个元素组成。奇数个元素被视为数组的索引,其后跟着的元素为索引对应的值。如果arrayName不存在且list为空,则使用空数组值创建数组arrayName。
unset
array unset arrayName ?pattern?
删除所有与pattern匹配的元素,匹配规则与string match一致。 如果arrayName不是数组变量的名称,或者数组中没有匹配的元素,不会引发错误。如果没有指定pattern,则会删除数组中的所有元素。该命令总是返回一个空字符串。
get
array get arrayName ?pattern?
返回索引与pattern匹配的元素对的列表。列表中奇数个元素是匹配的索引,其后的元素是索引对应的值。如果没有指定pattern,则返回所有元素。匹配规则与string match一致。如果arrayName不是数组变量的名称,或者没有匹配的索引,则返回空列表。
size
array size arrayName
返回数组中元素数量,如果arrayName不是数组的名称,则返回0。
statistics
array statistics arrayName
返回表示数组的哈希表中数据分布的统计信息。信息包括表中的条目数、桶的数量和桶的使用情况。
exists
array exists arrayName
如果arrayName是数组变量则返回1,如果arrayName不存在或者不是数组变量则返回0。
names
array names arrayName ?mode? ?pattern?
返回一个包含mode模式下与pattern匹配的数组索引的列表。mode可以是-exact、-glob或-regexp,默认为-glob与lsearch中的匹配模式含义相同。如果未指定mode与pattern则返回所有索引。如果没有匹配的索引或者arrayName不是数组变量的名称,则返回空字符串。
startsearch
array startsearch arrayName
通过arrayName指定的数组初始化一个逐个元素的搜索,这样调用array nexelement命令将返回单个数组元素的索引。当搜索完成后,需要调用array donesearch命令。返回值是一个用于array nextelement和array donesearch命令的标识符,允许对同一数组同时进行多个搜索。目前遍历非常大的数组时,使用foreach命令与array get或array names命令一起使用更高效、简洁。
nextelement
array nextelement arrayName searchId
返回arrayName中下一个元素的索引,如果arrarName中所有元素的索引都已经返回了,则返回空字符串。searchId是由array search命令的返回值。如果数组添加或删除了元素,那么所有的搜索都会自动终止,就像调用了array donesearch命令一样,会导致这些搜索的array nextelement命令操作失败。
anymore
array anymore arrayName searchId
如果数组搜索中还有要处理的元素,则返回1,如果所有元素都已经返回,则返回0。searchId表示要检查arrayName上的那个搜索,searchId是在此之前调用的array search命令的返回值。此命令对于数组中元素的索引有空值时非常有用,因为array nextelement命令的返回值不能确认搜索是否已经完成。
donesearch
array donesearch arrayName searchId
此命令终止数组搜索并销毁与该搜索关联的所有状态。searchId表示要销毁arrayName上的哪个搜索,searchId是在此之前调用的array search命令的返回值。此命令返回值为空字符串。
array set arr {}
array size arr
array set arr {a 1 b 2 c 3 ab 4}
array size arr
array get arr a*
array names arr a*
array names arr -exact a
array names arr
array statistics arr
set searchId [array startsearch arr]
while {[array anymore arr $searchId]==1} {puts [array nextelement arr $searchId]}
array donesearch arr $searchId
array unset arr a*
array size arr
array exists arr
array unset arr
array size arr
array exists arr
array exists arr1
Tcl数组命令之array相关推荐
- 初识Tcl(六):Tcl 数组
Tcl数组 数组是一组使用索引对应元素的排列方式.常规数组的语法如下所示. set ArrayName(Index) value 用于创建简单数组的例子,如下所示. #!/usr/bin/tclshs ...
- DirectX12(D3D12)基础教程(二十)—— 纹理数组(Texture Array)非DDS初始化操作
1.前言 2.纹理(Texture)和纹理数组(Texture Array) 3.纹理数组的创建 4.纹理数组的初始化(两次复制法) 1.前言 在本系列教程的 DirectX12(D3D12)基础 ...
- 百宝云Json与数组命令教程
百宝云Json与数组 JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类 ...
- Tcl/Tk 命令与C/C++的集成研究
Tcl/Tk 命令与C/C++的集成研究 1. 问题来源 基于虚拟现实的维修性分析评价系统(以下简称 VMSAS)是为适应产品无纸设计.分析.评审的需要,以人机工效商业软件JACK ...
- awk数组命令经典生产实战应用拓展
全部系列分为五篇文章,本博文为第三篇:四.awk数组命令生产实战拓展4.1统计apache日志单ip访问请求数排名(这个常用,考试也常考) 假设apache日志内容access.log内容为: 10. ...
- Shell中创建序列和数组(list、array)的方法
Shell中创建序列和数组(list.array)的方法 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2015-07-09 我要评论 这篇文章主要介绍了Shell中创建序列和数组(li ...
- python中numpy.array_python中数组(numpy.array)的基本操作
本文部分内容参考Daetalus的博客. 为什么要用numpy Python中提供了list容器,可以当作数组使用.但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简 ...
- javascript学习系列(19):数组中的Array.from方法
最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...
- 关联数组(associative array)
关联数组(associative array )是一种常用的抽象数据类型.它有很多别名,例如associative container , map , mapping , dictionary , f ...
最新文章
- Android导入工程提示Invalid project description
- juce中的BailOutChecker
- 谷歌Android各版本的代号变迁
- mysql优化和索引_mysql优化和索引
- pythonb超分辨成像_深度原理与框架-图像超分辨重构-tensorlayer
- strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程
- LiteIDE调试工具delve
- 三思笔记_在使用buildconfig调试之前要三思
- JTT1078 + netty + rtmp
- 手机内存文件夹html,手机内存不够用?这6个文件夹要定时清理,至少能省下2个G...
- 自定义Android Switch控件
- code review流程规范。
- loss 加权_样本生而不等——聊聊那些对训练数据加权的方法
- python提取微信聊天语音_GitHub - dennischancs/wechat-asr: 微信语音批量转文字 python编写 用百度智能云短语音识别API实现 windows下的使用...
- Java 数据持久化系列之JDBC
- 项羽ol网站服务器,《项羽ol》4千万平米无缝地图带你飞
- FXO和FXS的含义
- 蟋蟀的xss淫荡教程之如何劫持OSC用户账号
- linux 内存分配限制,overcommit_memory 2
- [ Python ] 常用类库学习之 tabulate
热门文章
- 图像分割 - 阈值处理 - 最大类间方差法(OTSU)
- 利用调试容器对activex控件程序进行执行,出现error MSB8011: Failed to register output.
- android在电脑上显示的文件格式,apk是什么文件格式?.apk文件怎么打开?
- 常用的激活函数汇总-Sigmoid, tanh, relu, elu
- 索罗斯金融炼金术的重要信息
- MATLAB实现软件无线电信道化接收机
- 经典语句——经典人生
- 乔布斯语录:领袖和跟风者的区别在于创新
- 在Windows终端cmd中打开文件夹
- sharepoint 2016 学习系列篇(15)-自定义列表应用篇-(4)数据权限配置