Perl中的真與假深入研究
Perl認(rèn)為真值是自明的(self-evident), 表示任何事物的真值都可以計(jì)算。Perl以實(shí)用的方式來(lái)定義真值,即一個(gè)實(shí)體的真值取決于這個(gè)實(shí)體的類(lèi)型。Perl總是樂(lè)觀的認(rèn)為:這個(gè)世界上真的東西遠(yuǎn)比假的東西多的多。
Perl區(qū)別與任何其他計(jì)算機(jī)語(yǔ)言,Perl是語(yǔ)言學(xué)家創(chuàng)造的,而語(yǔ)言的意思離不開(kāi)上下文語(yǔ)境,所以Perl中的真值都可以在標(biāo)量(標(biāo)量$與數(shù)組@類(lèi)似于英文中的單數(shù)與復(fù)數(shù), book 與 books的區(qū)別, 真值在現(xiàn)實(shí)世界中,應(yīng)該就是單數(shù),所以是標(biāo)量)計(jì)算,除此之外,不會(huì)做任何類(lèi)型的強(qiáng)制轉(zhuǎn)換(比如在Python中int('42')來(lái)將含數(shù)字的字符型轉(zhuǎn)換int類(lèi)型,在Java中(int)'d'將字符型轉(zhuǎn)為整型)。
對(duì)于標(biāo)量中各種類(lèi)型的值,規(guī)則如下:
字符型: 除了""和"0",所有字符都是真(true)
數(shù)字型: 除了0外,所有數(shù)字都是true
引用型: 所有引用都為true(所有引用都會(huì)指向有地址的對(duì)象,這絕對(duì)不會(huì)為0,因?yàn)樗隙ㄒ讯x)
未定義: 所有未定義值都是false
下面例子可以很好理解Perl中真、假的概念:
0 # 將轉(zhuǎn)換為字符串"0",所以為false
1 # 將轉(zhuǎn)換為字符串"1",所以為true
100 - 100 # 100-100等于0,這將轉(zhuǎn)換為字符串"0",所以為false
0.00 # 等于0,將轉(zhuǎn)換為字符串"0",所以為false
"0" # 字符串"0",所以為false
"" # 這是空串,所以為false
"0.00" # 即不是"",也不是"0",所以為true
"0.00" + 0 # 由+強(qiáng)制轉(zhuǎn)換,計(jì)算結(jié)果為0,所以為false
\$a # 標(biāo)量$a的引用,所以為true,即使$a為false也是如此。
undef() # 是一個(gè)返回未定義值的函數(shù),所以為false
相關(guān)文章
兩段Perl腳本代碼(數(shù)組應(yīng)用與say用法)
兩段Perl代碼(數(shù)組應(yīng)用與say用法),供大家學(xué)習(xí)參考2013-02-02
perl操作MongoDB報(bào)錯(cuò)undefined symbol: HeUTF8解決方法
這篇文章主要介紹了perl操作MongoDB報(bào)錯(cuò)undefined symbol: HeUTF8解決方法,需要的朋友可以參考下2014-10-10
Windows10下安裝配置 perl 環(huán)境的詳細(xì)教程
Perl 最重要的特性是Perl內(nèi)部集成了正則表達(dá)式的功能,以及巨大的第三方代碼庫(kù)CPAN。這篇文章主要介紹了Windows10下安裝配置 perl 環(huán)境的詳細(xì)教程,需要的朋友可以參考下2020-12-12

