Ruby爲什麼提供until
和unless
?有沒有if
和while
無法完成這項工作的情況?提供這些替代品的意義何在?爲什麼要在Ruby中提供`until`和`unless`
0
A
回答
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
因此,簡而言之,這些 「多餘」 的方法有增加可讀性,方便和樂趣。
相關問題
- 1. 爲什麼`ObjectSpace._id2ref`在Ruby 1.9和Ruby 2.0上提供不同的輸出?
- 2. 爲什麼需要在此「LocationFeatureSpecification」項目中提供「值」?
- 3. 爲什麼我們需要在數據源中提供密碼?
- 4. 什麼提供scatter3D作爲Y和Z?
- 5. 爲什麼Data.Time.Clock提供DiffTime和NominalDiffTime?
- 6. 爲什麼Dagger2要求我提供組件不應該提供的東西?
- 7. 爲什麼需要測試服務提供商(未知提供商)?
- 8. 爲什麼要爲各種密度提供多個drawable?
- 9. Silverlight提供什麼?
- 10. ModeShape提供的JackRabbit不提供什麼?
- 11. 在DotNetNuke中,認證提供者和成員提供者有什麼區別?
- 12. 爲什麼Azure訂閱需要向提供商註冊?
- 13. 爲什麼我們需要提供兩次通用信息?
- 14. 爲什麼格式化輸入輸出需要提供變量?
- 15. 爲什麼rvm install 2.0.0要求提供sudo密碼?
- 16. 爲什麼要定製NIO選擇器提供程序?
- 17. 爲什麼github不斷要求我提供回購憑證?
- 18. Android:爲什麼位置的新實例需要提供者?
- 19. 爲什麼omniauth需要OpenID提供商的商店?
- 20. 是什麼要求和提供的接口之間的差異
- 21. 爲什麼$只提供'angular.mock.module'函數,$ q只提供'angular.mock.inject'函數?
- 22. OpenID提供者和OpenID WebRing SSO提供者有什麼區別?
- 23. 爲什麼respond_to?在Ruby中需要符號作爲參數?
- 24. 我爲什麼要在Android中使用自定義內容提供者?
- 25. 爲什麼在Access中執行此查詢時要求提供參數?
- 26. 在Xcode 8中提供Thread Sanitizer和Address Sanitizer選項需要什麼
- 27. 爲什麼Data.Set提供elems以及toList?
- 28. JavaScript Routing爲您提供什麼?
- 29. 爲什麼Silverlight不提供IME支持?
- 30. 爲什麼Microsoft Translate API提供404?
「有沒有任何情況下,如果和不能完成這項工作?」不,你總是可以使用否定。唯一的目的是方便和可讀性。 –
實際上,你也不需要'if','while'可以完成'if'的工作就好了。而且你也不需要'while',多態消息發送和一流程序可以很好地完成這項工作。 –
你可能會問爲什麼其他語言不提供它們。 – meagar