Ruby是否拒绝使用错误的文件存在方法?

Ruby是否拒绝使用错误的文件存在方法?,ruby,methods,naming-conventions,Ruby,Methods,Naming Conventions,政府的文件说: 如果命名文件存在,则返回true 注意最后一个词的使用;“存在”。这是正确的。没有结尾s的“文件存在”不正确 方法File.exists?存在,但他们不赞成此方法。我想应该是相反的。我错过了什么 另外,值得注意的是,存在其他语言/库使用,例如和 类似地,“this equals that”-但是Ruby使用,再次删除了结尾s。我感觉Ruby正在积极地朝着另一个方向走,而不是主流。但这一定是有原因的吗?这主要是主观判断。您是否将调用理解为“此文件存在吗?”或“文件存在”?两种解读都

政府的文件说:

如果命名文件存在,则返回
true

注意最后一个词的使用;“存在”。这是正确的。没有结尾s的“文件存在”不正确

方法
File.exists?
存在,但他们不赞成此方法。我想应该是相反的。我错过了什么

另外,值得注意的是,存在其他语言/库使用,例如和


类似地,“this equals that”-但是Ruby使用,再次删除了结尾s。我感觉Ruby正在积极地朝着另一个方向走,而不是主流。但这一定是有原因的吗?

这主要是主观判断。您是否将调用理解为“此文件存在吗?”或“文件存在”?两种解读都有各自的优点

历史上,Ruby有很多别名方法,比如
size
length
,但最近核心团队似乎正试图专注于更广泛应用的单一、一致的约定

您必须仔细查看内部邮件列表中围绕决策的对话。我不能很容易地找到它们,只有处理这些更改的人会弹出弃用警告


Ruby核心团队由会说不同语言的人组成,但母语是日语,所以这可能是一些决策的指导。避免动词出现奇怪的屈折变化可能是一种偏好。

我同意
如果File.exists?('x.txt')
读起来比复数形式更自然,这可能是Matz的别名意图。就我而言,这种特别的抨击是错误的

然而,在处理枚举/集合时,复数形式的一般偏好可能会得到很好的传递,其中复数在与以下习语一起使用时有一定的意义:

路径名。选择(&:exist?)

尺寸
长度
可以同时做不同的事情。其中一个始终存在,但可能不是有效的。另一个总是O(1),如果不可能的话,它就不存在。至少,我是这样记得的。@JörgWMittag取决于所讨论的对象。在像这样的事情上,它被明确地列为“长度的别名”。是的,这总是让我感到不舒服。IMO
size
应该存在于支持它的对象中,如果可能的话,
length
应该是
size
的别名,而不是相反。但是,我刚刚注意到,
Enumerator
size
但没有
length
。可能是核心团队一直没有注意到的事情。核心库的某些元素已经过时,需要进行一些检查,以了解命名约定的一致性。