Perl中的真与假

Perl认为真值是自明的(self-evident), 表示任何事物的真值都可以计算。Perl以实用的方式来定义真值,即一个实体的真值取决于这个实体的类型。Perl总是乐观的认为:这个世界上真的东西远比假的东西多的多。


Perl区别与任何其他计算机语言,Perl是语言学家创造的,而语言的意思离不开上下文语境,所以Perl中的真值都可以在标量(标量$与数组@类似于英文中的单数与复数, book 与 books的区别, 真值在现实世界中,应该就是单数,所以是标量)计算,除此之外,不会做任何类型的强制转换(比如在Python中int('42')来将含数字的字符型转换int类型,在Java中(int)'d'将字符型转为整型)。


对于标量中各种类型的值,规则如下:

  • 字符型: 除了"""0",所有字符都是真(true)
  • 数字型: 除了0外,所有数字都是true
  • 引用型: 所有引用都为true(所有引用都会指向有地址的对象,这绝对不会为0,因为它肯定已定义)
  • 未定义: 所有未定义值都是false


下面例子可以很好理解Perl中真、假的概念:

0           # 将转换为字符串"0",所以为false
1           # 将转换为字符串"1",所以为true
100 - 100   # 100-100等于0,这将转换为字符串"0",所以为false
0.00        # 等于0,将转换为字符串"0",所以为false
"0"         # 字符串"0",所以为false
""          # 这是空串,所以为false
"0.00"      # 即不是"",也不是"0",所以为true
"0.00" + 0  # 由+强制转换,计算结果为0,所以为false
\$a         # 标量$a的引用,所以为true,即使$a为false也是如此。
undef()     # 是一个返回未定义值的函数,所以为false



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值