从:
https://ruby-doc.org/core-2.7.0/String.html#method-i-2F
看起来我们可以执行以下任一操作来进行拆分:
got = str.split(',')
got = str/','
Run Code Online (Sandbox Code Playgroud)
但第二个似乎不起作用(“./”或“./(ch)”等也不起作用),而是给出了一种未找到的方法(MRI 2.7.0)
事实上,当我这样做时,我什么也没得到:
puts String.methods.index(:/)
Run Code Online (Sandbox Code Playgroud)
(虽然现在我已经在 Integer 上尝试过了,但我发现它也没有出现在那里)
这是文档中的错误吗?
这看起来像是 ruby-doc.org 上的文档的问题。
\n的/别名从来String#split没有(据我所知)是常规的一部分String,但它是golf_prelude.rb.
golf_prelude.rb是用于代码高尔夫的 Ruby 特殊版本的一部分。您可以\xe2\x80\x99t 只是require \'golf_prelude\'为了使用它,但您需要制作一个包含它的特殊构建。
的文档String#/出现在 ruby-doc.org 到 Ruby 3.1.0中,但 \xe2\x80\x99t 出现在3.1.1及以后版本中。golf_prelude.rb3.1.0 之前的版本中还记录了其他方法,例如Object#h、Symbol#call和Integer#each,尽管它们实际上并不存在于普通 Ruby 中,并且已从 3.1.1 文档中删除。
如果您查看这些类文档的 \xe2\x80\x9cIn Files\xe2\x80\x9d 部分(位于页面左上角),您将看到 3.1.0 版本全部列出,而 3.1.1 版本则全部列出golf_prelude.rb。版本不\xe2\x80\x99t。
这两个版本之间的 Ruby 源似乎没有任何更改来解释文档中的差异(至少我找不到)。我的假设是 ruby-doc.org 的维护者注意到他们在生成站点时错误地包含了此文件,并更改了构建脚本以排除它。
\n\n\n(虽然现在我已经在 Integer 上尝试过了,但我发现它也没有出现在那里)
\n
或String,Integer作为类,都没有/方法(即使在高尔夫版本中),但的实例Integer(但不是String\xe2\x80\x93 ,除非打高尔夫球)可以:
String.instance_methods.index(:/)\n=> nil\nInteger.instance_methods.index(:/)\n=> 32\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |