白马非马?

前两天看到朋友在博客里写了一篇《白马非马》,长长的一大段,那些文字我们就不说了,我最感兴趣的是他用python和ruby“证明”的白马不是马。虽说我从小接受的教育让我始终相信白马是马,不过还是挺有意思的。

让我们来看下他是怎么写的——
战国的时候有一位公孙龙先生,提出了这么一个观点,说“白马非马”。我们的教科书上说那叫诡辩,白马明明也是马么。那么咱先写个程序来验证一下:
Python程序略
Ruby程序
class Horse
end

class WhiteHorse < Horse
end

puts Horse == WhiteHorse

结果是:false

他用程序语言复述了一下公孙龙的意思,的确没什么错。只是从语法上来看,==是用来判断两实例是否相同的,就算Ruby中类本身也是实例,可是用==也决不会变成true的,就是说如果这么写,白马永远都不是马了。所以我就改了下:

class Horse
end

class WhiteHorse < Horse
end

wh = WhiteHorse.new
puts wh.is_a? Horse

结果是:true

照我这种写法随便哪个WhiteHorse实例都是马,找不出不是马的白马,所以白马就是马啦。

注:本文纯属娱乐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值