白马非马?
前兩天看到朋友在博客里寫了一篇《白馬非馬》,長長的一大段,那些文字我們就不說了,我最感興趣的是他用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實例都是馬,找不出不是馬的白馬,所以白馬就是馬啦。
注:本文純屬娛樂
總結
- 上一篇: 领英发错的消息可以撤回吗?
- 下一篇: 简单查看windows蓝屏原因