File.exist?
的文档说:
如果指定的文件存在,则返回
true
。
注意使用的最后一个词; “存在”。这是对的。 “文件存在”没有结尾 s 不正确。
方法File.exists?
存在,但他们不赞成使用此方法。我认为应该是另一种方式。我错过了什么?
另外,值得注意的是其他语言/库使用 exists ,例如Java和.NET。
同样,“此等于” - 但Ruby使用equal,再次删除结尾 s 。我感觉Ruby正在积极地走向另一个方向而不是主流。但那必须有一个理由吗?
答案 0 :(得分:1)
这在很大程度上是一个主观的呼吁。你是否读过这个电话"这个文件是否存在?"或"文件存在"?两个读数都有其优点。
从历史上看,Ruby有很多别名方法,如size
与length
,但最近似乎核心团队正在努力关注更广泛适用的单一,一致的约定。
您必须仔细查看围绕此处决策的内部邮件列表上的对话。我无法轻易找到它们,只有那些处理这些更改的人会弹出弃用警告。
Ruby核心团队是讲不同语言但母语是日语的人的混合体,所以或许这可以指导其中一些决策。可以优先避免动词上的奇怪变形。
答案 1 :(得分:0)
我同意 if File.exists?('x.txt')
读起来比复数形式更自然,这可能是 Matz 使用别名的意图。就我而言,这种特殊的弃用被误导了。
然而复数形式的一般偏好可能很好地用于处理可枚举/集合,当与这样的习语一起使用时,复数形式是有意义的:
pathnames.select(&:exist?)