最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

2022年的 Tcl 編程語言入門參考 4.數(shù)組、列表、字典

2022-04-10 18:02 作者:象喻  | 我要投稿

這三者都屬于數(shù)據(jù)的集合(相當(dāng)于把一堆數(shù)據(jù)打個(gè)包的感覺),集合中的數(shù)據(jù)被稱為元素(大部分語言都叫元素)。絕大多數(shù)編程語言都有這些概念,但是具體實(shí)現(xiàn)千差萬別。尤其是Tcl語言,跟流行語言的差異還是很大的,畢竟這是只有字符串的世界。

數(shù)據(jù)集合的特點(diǎn):可以添加、刪除、修改元素可以查詢/統(tǒng)計(jì)元素可以對(duì)元素進(jìn)行遍歷操作

數(shù)據(jù)集合的作用,就相當(dāng)于變量的Excel表格,還可以擴(kuò)展出一些魔法操作(比如早先Python用字典實(shí)現(xiàn)switch功能)

數(shù)組

TCL語言的數(shù)組是變量的無序集合,無序指的是數(shù)組里的變量沒有順序。使用數(shù)組的時(shí)候,就由數(shù)組的名字加上元素的名字來指定具體是哪個(gè)變量。

用set命令創(chuàng)建/設(shè)置數(shù)組,用法跟變量一樣。如果數(shù)組不存在,就會(huì)自動(dòng)創(chuàng)建數(shù)組;元素不存在就會(huì)自動(dòng)創(chuàng)建元素。

??注意:元素名始終被識(shí)別為字符串,所以1.0跟1不一樣。元素名不要帶空格,會(huì)引起很多麻煩

模擬多維數(shù)組

Tcl語言本身不支持多維數(shù)組(元素本身也是數(shù)組)。但因?yàn)橐磺卸际亲址钥梢阅M出多維數(shù)組的效果

數(shù)組 array 命令

數(shù)組專用的array命令,有很多功能(一堆預(yù)設(shè)參數(shù))

數(shù)組遍歷

數(shù)組遍歷是通過一系列命令實(shí)現(xiàn)的(還需要配合條件判斷或邏輯循環(huán)命令,比如if、for、while等等):

array startsearch 返回一個(gè)本次遍歷行為的代號(hào)

array nextelement 列出當(dāng)前遍歷進(jìn)度的元素名稱,沒有時(shí)返回空字符(即當(dāng)前遍歷進(jìn)度已經(jīng)到達(dá)數(shù)組末尾)

array anymore 如果遍歷進(jìn)度后面還有元素就返回1,否則返回0

array donesearch 終止遍歷,并刪除"標(biāo)記"

可以對(duì)數(shù)組同時(shí)進(jìn)行多組遍歷,遍歷過程中對(duì)數(shù)組添加或刪除元素,則所有遍歷行為都將終止,等同于調(diào)用donesearch

列表

編程語言中,"列表"是有序數(shù)據(jù)集合。Tcl的列表是字符串的有序集合,也就是說首先是字符串,其次它有順序。Tcl的列表以空白字符分隔各個(gè)元素,比如下面的字符串就符合Tcl列表的形式:

"嗶哩嗶哩 ?NASDAQ:BILI ?2022-04-08 ?27.02 ?27.66 ?25.66 ?25.71 ?11.72M"

列表是可以嵌套的,即元素本身也是列表,比如:

"{奇奇 ?恰恰 ?蹦蹦} ?啦啦"

列表有一系列命令

  • list - 創(chuàng)建一個(gè)列表

  • lrepeat - 使用重復(fù)的元素創(chuàng)建列表

  • split - 將字符串分解成Tcl列表

  • concat - 將多個(gè)列表合并成一個(gè)列表

  • join - 把列表元素合并成一個(gè)字符串

  • lappend - 將元素添加到列表末尾

  • lassign - 將列表元素賦值給變量

  • lindex - 從列表中獲得元素

  • linsert - 以插入元素的形式生成新列表

  • llength - 計(jì)算列表的元素個(gè)數(shù)

  • lrange - 返回列表中的一個(gè)或者多個(gè)臨近的元素

  • lreplace - 在一個(gè)列表中使用新的元素替代其它元素

  • lreverse - 反轉(zhuǎn)列表元素的順序

  • lsearch - 在列表中尋找特定元素

  • lset - 修改列表元素

  • lsort - 給列表中的元素排序、去除重復(fù)元素

  • lmap - 遍歷列表并重新整合

按照Tcl近些年的發(fā)展思路,這些功能應(yīng)該都整合到list命令里面(就像chan命令那樣)。但畢竟用了這么多年了,尾大難掉頭。

字典

字典是由成對(duì)的“元素名 - 元素值”組成的有序集合(部分語言的字典是無序的,比如早期的Python)。字典的優(yōu)勢(shì)在于,可以通過元素名提取值,并且元素名是有順序的。此外,字典的值可以是多種形式。

Tcl的字典看上去跟偶數(shù)長(zhǎng)度的列表相同,也是一種有特殊格式規(guī)則的字符串。字典的元素名,也稱為關(guān)鍵字,英文是key。

dict命令用來操作字典,這個(gè)命令有一大堆預(yù)設(shè)參數(shù)(相當(dāng)于子命令)。




append

dict append 字典名 關(guān)鍵字 字符串

為元素追加字符串或把元素追加到字典后面。字符串有多個(gè)值時(shí),會(huì)拼接成一個(gè)字符串



exists

dict exists 字典 關(guān)鍵字 ?嵌套字典關(guān)鍵字?

檢驗(yàn)字典元素是否存在


過濾

以三種方式過濾出字典內(nèi)的鍵值對(duì)

dict filter 字典 key/value/script "規(guī)則"




for遍歷操作


?

map遍歷修改,返回新字典

incr增加元素值

update更新元素值

?

with命令

與update類似,自動(dòng)將元素名作為變量名引入最后的代碼段

?


其它簡(jiǎn)單子命令





2022年的 Tcl 編程語言入門參考 4.數(shù)組、列表、字典的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
棋牌| 合作市| 中超| 夏河县| 卢龙县| 东明县| 墨竹工卡县| 睢宁县| 忻州市| 临泉县| 霍林郭勒市| 哈密市| 桃源县| 望谟县| 商南县| 宽甸| 沧源| 威宁| 称多县| 平定县| 城步| 安义县| 青冈县| 屏东市| 桑日县| 根河市| 鄄城县| 松潘县| 将乐县| 西宁市| 香港| 阿图什市| 犍为县| 嘉善县| 台北县| 衡东县| 柞水县| 武陟县| 沙雅县| 阿巴嘎旗| 利川市|