2015-04-07 33 views
0

Ruby爲什麼提供untilunless?有沒有ifwhile無法完成這項工作的情況?提供這些替代品的意義何在?爲什麼要在Ruby中提供`until`和`unless`

+1

「有沒有任何情況下,如果和不能完成這項工作?」不,你總是可以使用否定。唯一的目的是方便和可讀性。 –

+2

實際上,你也不需要'if','while'可以完成'if'的工作就好了。而且你也不需要'while',多態消息發送和一流程序可以很好地完成這項工作。 –

+0

你可能會問爲什麼其他語言不提供它們。 – meagar

回答

2

是否有任何特殊原因爲什麼Ruby提供,直到和除非?有沒有任何情況下,如果和無法完成這項工作?

不是。沒有技術上的理由可以包括這個或者需要它的特殊情況。你可以用否定或其他結構完成同樣的事情。

提供這些替代方案的意義何在?

這是Ruby中心設計理念的一部分。當被問及語言的指導哲學時,請看Ruby的創造者Yukihiro「Matz」Matsumoto的這句話:

我相信人們在編程時想要表達自己。他們不想與語言作鬥爭。編程語言對程序員來說必須是自然的。我試圖讓人們喜歡編程,並在使用Ruby時專注於編程的有趣和創造性部分。

http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html

紅寶石設計使它一樣容易表達自己的想法的代碼,因爲它是英文的。 Matz還專注於開發者的快樂,這種開發者的快樂源自編寫代碼時的自由創意和表達能力:

對我而言,生活的目的有一部分是喜悅。程序員們往往能夠專注於編程的創意方面而感到高興,因此Ruby旨在讓程序員高興。

http://www.artima.com/intv/rubyP.html

因此,簡而言之,這些 「多餘」 的方法有增加可讀性,方便和樂趣。

相關問題