Ruby 的未知类的目的是什么?

What is the purpose of Ruby's unknown class?

提问人:aaronkelton 提问时间:3/7/2019 更新时间:3/7/2019 访问量:212

问:

我正在浏览 Ruby Core API,并注意到列表底部的“未知”。当您在 https://ruby-doc.org/core-2.6.1/unknown.html 转到该课程的页面时,您会注意到没有内容。

这个班级的目的是什么,即你何时以及如何使用它?如果没有目的,为什么要记录在 ruby-doc.org 上?

Ruby 文档

评论


答:

5赞 tadman 3/7/2019 #1

看起来这是文档系统的某种工件,而不是 Ruby 中的实际类。

该文档是通过解析 Ruby 源代码生成的,并且经常会对它所看到的内容感到困惑。有一些方法可以用额外的注释来指导它忽略它不应该记录的东西等等,但追踪哪个特定的文件或行产生了这个“未知”的引用并不一定容易。

您可能希望在文档中将其报告为错误。该页面没有帮助,而且比任何事情都更令人困惑。

评论

2赞 cremno 3/7/2019
不过,您可以做出有根据的猜测。文档提到,所以很可能是这一。rdoc 看到类定义,但没有字符串文字(基本上就像其他任何地方一样),但它回退到好坏。它也属于一个新的 2.6 功能,并且该类不会出现在以前版本的文档中。time.cunknownunknown
1赞 aaronkelton 3/7/2019
超级有趣!在 Ruby 2.5.x 或 2.4.x 版本上甚至没有显示。继续往回看,文件提到更改为 2.2.x 和 2.3.x,然后是 2.1.x、2.0.0 和 1.9 系列。回到 1.8.x 中,它提到 .unknownio.cprocess.cprec.c
0赞 Stefan 3/7/2019
顺便说一句,docs.ruby-lang.org/en/2.6.0 的文档没有“未知”条目
0赞 cremno 3/7/2019
@Stefan:docs.ruby-lang.org(官方)使用的是最新的RDoc版本。也许 ruby-doc.org(非正式的)正在使用较旧的。2.6 文件甚至提到了 RDoc 解析修复。NEWS
1赞 aaronkelton 3/8/2019
有几个问题已经提到了未知的.html:一个关于忽略动态添加方法的已关闭问题,以及一个关于 2013 年 C 解析有效文件的未解决问题。鉴于此信息,是否应该开设新问题?
1赞 lacostenycoder 3/7/2019 #2

Ruby 中没有类。为了证明@tadman的观点,只需运行 IRB 控制台:unknown

irb(main):006:0> NilClass
=> NilClass
irb(main):007:0> Object
=> Object
irb(main):008:0> ZeroDivisionError
=> ZeroDivisionError
irb(main):009:0> Unknown
NameError: uninitialized constant Unknown
irb(main):010:0> unknown
NameError: undefined local variable or method `unknown' for main:Object

评论

2赞 cremno 3/7/2019
好吧,有致命的,它没有大写,绝对是不同的东西.unknown
0赞 sawa 3/7/2019
大写只是常数的规则。可以将类分配给具有非大写名称的方法或局部变量。
0赞 sawa 3/7/2019
检查大写的 ,它无处可去是没有意义的。您检查非大写的 .Unknownunknown
0赞 lacostenycoder 3/7/2019
更新了我的答案
0赞 Stefan 3/7/2019
代码显示没有常量,也没有方法或变量。仍然可能有一个类没有被分配给常量,就像类一样。Unknownunknownunknownfatal