五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

2022年的 Tcl/Tk 編程入門參考 8.表達(dá)式計(jì)算

2022-04-16 14:30 作者:象喻  | 我要投稿

??為什么現(xiàn)在才介紹表達(dá)式……這涉及文件夾排列順序的深層次問題——沒注意,把它漏過去了——直到if命令發(fā)完,隱約感到一絲絲不安,才想起來。

??為什么又繼續(xù)更了"異常處理"?因?yàn)槲以噲D掩蓋失誤……但是我發(fā)現(xiàn)都欺騙不了我自己,放棄了……


expr命令用于數(shù)學(xué)表達(dá)式計(jì)算、邏輯比較和字符串比較。

這個(gè)命令比較關(guān)鍵的地方在于它的執(zhí)行流程:首先,它會(huì)把所有的參數(shù)組合成一個(gè)字符串,然后對(duì)這個(gè)字符串進(jìn)行替換操作,最后把替換后的結(jié)果視為表達(dá)式進(jìn)行計(jì)算。如果只給它一個(gè)參數(shù),由于不需要組合,所以能微弱提升效率,但是組合的步驟仍然會(huì)把這個(gè)唯一參數(shù)變成字符串,然后進(jìn)行替換操作,再進(jìn)行計(jì)算。

也就是說,無論是單個(gè)參數(shù)還是多個(gè)參數(shù),即便用{}括起來,在計(jì)算前也會(huì)進(jìn)行替換操作。

?


字符串比較

expr可以比較兩個(gè)字符串是否相同,與邏輯比較類似,返回代表布爾值概念的1/0(1代表"是",0 代表 "否")

其使用eq和ne作為比較運(yùn)算符(eq ?-> equal 相等,ne ?-> ?not ?equal 不相等):

*提示:字符串的string命令也有比較功能。


精度問題

expr命令在計(jì)算或邏輯比較時(shí),會(huì)對(duì)表達(dá)式的值進(jìn)行自動(dòng)轉(zhuǎn)換(不是Tcl語法里的替換,是數(shù)學(xué)層面的轉(zhuǎn)換),這有可能會(huì)導(dǎo)致精確度問題,或者與預(yù)期不符。

?


三元運(yùn)算符

三元運(yùn)算符(?和:)是編程語言中常見的縮寫形式,用來縮短 if - then - else 語句的代碼量。但是在Tcl語言里,運(yùn)算符必須配合expr這樣的命令使用,考慮到expr自身的規(guī)則都快趕上語法了,所以實(shí)際上就沒啥優(yōu)勢(shì)了。

三元運(yùn)算符:判斷條件 ? {為真時(shí)執(zhí)行的代碼} : {為假時(shí)執(zhí)行的代碼}

?


安全性

舉例時(shí)經(jīng)常給表達(dá)式加上大括號(hào),這是官方推薦的寫法,除了前面提到的能略微提升效率之外,還有一個(gè)更重要的原因——防止命令注入。

無論是命令行還是圖形界面程序,經(jīng)常會(huì)接收用戶輸入的數(shù)據(jù)(比如用戶名、密碼的輸入框),而expr的運(yùn)行機(jī)制在接收用戶數(shù)據(jù)時(shí)有問題(假設(shè)存放在userinput變量中):

?



2022年的 Tcl/Tk 編程入門參考 8.表達(dá)式計(jì)算的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
雅江县| 抚松县| 岳阳县| 鹿邑县| 洛南县| 灵石县| 德兴市| 乌审旗| 敦化市| 嘉义市| 九寨沟县| 彭水| 攀枝花市| 桃园县| 晋宁县| 于都县| 新宾| 桃江县| 龙山县| 雷波县| 金昌市| 和田市| 兴国县| 沂南县| 丰县| 那坡县| 柳江县| 黎川县| 吉安市| 前郭尔| 界首市| 清新县| 汤原县| 潞城市| 平塘县| 科技| 恩施市| 黎城县| 凌云县| 新乐市| 正阳县|