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相关推荐

  1. 初识Tcl(六):Tcl 数组

    Tcl数组 数组是一组使用索引对应元素的排列方式.常规数组的语法如下所示. set ArrayName(Index) value 用于创建简单数组的例子,如下所示. #!/usr/bin/tclshs ...

  2. DirectX12(D3D12)基础教程(二十)—— 纹理数组(Texture Array)非DDS初始化操作

    1.前言 2.纹理(Texture)和纹理数组(Texture Array) 3.纹理数组的创建 4.纹理数组的初始化(两次复制法) 1.前言   在本系列教程的 DirectX12(D3D12)基础 ...

  3. 百宝云Json与数组命令教程

    百宝云Json与数组 JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类 ...

  4. Tcl/Tk 命令与C/C++的集成研究

     Tcl/Tk 命令与C/C++的集成研究 1. 问题来源       基于虚拟现实的维修性分析评价系统(以下简称 VMSAS)是为适应产品无纸设计.分析.评审的需要,以人机工效商业软件JACK ...

  5. awk数组命令经典生产实战应用拓展

    全部系列分为五篇文章,本博文为第三篇:四.awk数组命令生产实战拓展4.1统计apache日志单ip访问请求数排名(这个常用,考试也常考) 假设apache日志内容access.log内容为: 10. ...

  6. Shell中创建序列和数组(list、array)的方法

    Shell中创建序列和数组(list.array)的方法 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2015-07-09 我要评论 这篇文章主要介绍了Shell中创建序列和数组(li ...

  7. python中numpy.array_python中数组(numpy.array)的基本操作

    本文部分内容参考Daetalus的博客. 为什么要用numpy Python中提供了list容器,可以当作数组使用.但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简 ...

  8. javascript学习系列(19):数组中的Array.from方法

    最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...

  9. 关联数组(associative array)

    关联数组(associative array )是一种常用的抽象数据类型.它有很多别名,例如associative container , map , mapping , dictionary , f ...

最新文章

  1. Android导入工程提示Invalid project description
  2. juce中的BailOutChecker
  3. 谷歌Android各版本的代号变迁
  4. mysql优化和索引_mysql优化和索引
  5. pythonb超分辨成像_深度原理与框架-图像超分辨重构-tensorlayer
  6. strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程
  7. LiteIDE调试工具delve
  8. 三思笔记_在使用buildconfig调试之前要三思
  9. JTT1078 + netty + rtmp
  10. 手机内存文件夹html,手机内存不够用?这6个文件夹要定时清理,至少能省下2个G...
  11. 自定义Android Switch控件
  12. code review流程规范。
  13. loss 加权_样本生而不等——聊聊那些对训练数据加权的方法
  14. python提取微信聊天语音_GitHub - dennischancs/wechat-asr: 微信语音批量转文字 python编写 用百度智能云短语音识别API实现 windows下的使用...
  15. Java 数据持久化系列之JDBC
  16. 项羽ol网站服务器,《项羽ol》4千万平米无缝地图带你飞
  17. FXO和FXS的含义
  18. 蟋蟀的xss淫荡教程之如何劫持OSC用户账号
  19. linux 内存分配限制,overcommit_memory 2
  20. [ Python ] 常用类库学习之 tabulate

热门文章

  1. 图像分割 - 阈值处理 - 最大类间方差法(OTSU)
  2. 利用调试容器对activex控件程序进行执行,出现error MSB8011: Failed to register output.
  3. android在电脑上显示的文件格式,apk是什么文件格式?.apk文件怎么打开?
  4. 常用的激活函数汇总-Sigmoid, tanh, relu, elu
  5. 索罗斯金融炼金术的重要信息
  6. MATLAB实现软件无线电信道化接收机
  7. 经典语句——经典人生
  8. 乔布斯语录:领袖和跟风者的区别在于创新
  9. 在Windows终端cmd中打开文件夹
  10. sharepoint 2016 学习系列篇(15)-自定义列表应用篇-(4)数据权限配置