• 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

  • 相关阅读:
    模拟http请求 带 chunked解析办法一
    DLL入口函数
    修复吾爱OD数据窗口双击不出现偏移问题
    PE导入表分析
    持仓盈亏公式
    hadoop工作相关
    zookeeper常用命令
    git使用命令行上传文件
    redis中各种数据类型对应的jedis操作命令
    volatile关键字比较好的解释
  • 原文地址:https://www.cnblogs.com/cqx6388/p/15841639.html
Copyright © 2020-2023  润新知