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. 为什么需要测试服务提供商(未知提供商)?
- 3. Silverlight提供什么?
- 4. 在DotNetNuke中,认证提供者和成员提供者有什么区别?
- 5. 为什么Azure订阅需要向提供商注册?
- 6. 为什么omniauth需要OpenID提供商的商店?
- 7. 为什么要定制NIO选择器提供程序?
- 8. 为什么github不断要求我提供回购凭证?
- 9. 我为什么要在Android中使用自定义内容提供者?
- 10. 在Xcode 8中提供Thread Sanitizer和Address Sanitizer选项需要什么
- 11. 为什么我的Angular2控件需要作为提供者包含在内?
- 12. 为什么java.time.LocalDateTime不提供toDate()方法?
- 13. 为什么不提供任何参数
- 14. 为什么Android RemoteView类仅提供setOnClickPendingIntent
- 15. HDFS为HBase提供了什么?
- 16. 为什么Microsoft Translate API提供404?
- 17. 为什么jQuery不提供.firstChild方法?
- 18. 为什么IHttpAsyncHandler提供extraData参数?
- 19. 为什么Silverlight不提供IME支持?
- 20. JavaScript Routing为您提供什么?
- 21. 为什么使用联合提供者?
- 22. 为什么preg_replace会提供此输出?
- 23. 为什么在Javascript的array.forEach回调中提供数组参数?
- 24. 为什么在SPI通信中提供了不同的模式?
- 25. 为什么org.apache.poi.hssf在Excel 2007中提供了错误的颜色?
- 26. 为什么在自由语句中没有提供大小
- 27. 为什么getLastKnownLocation(提供者)在clearTestProviderLocation(提供者)后不返回null
- 28. 什么平台提供SystemRandom?
- 29. 什么是提供IOS
- 30. BizSpark目前提供什么?
“有没有任何情况下,如果和不能完成这项工作?”不,你总是可以使用否定。唯一的目的是方便和可读性。 –
实际上,你也不需要'if','while'可以完成'if'的工作就好了。而且你也不需要'while',多态消息发送和一流程序可以很好地完成这项工作。 –
你可能会问为什么其他语言不提供它们。 – meagar