2015-04-07 29 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

因此,简而言之,这些 “多余” 的方法有增加可读性,方便和乐趣。

相关问题