其中是Ruby的源代码';s运营商?

其中是Ruby的源代码';s运营商?,ruby,Ruby,我正在寻找Ruby源代码中一元&to_proc行为的证据,以便我可以写下它。这些ruby操作符的本机行为的实现保存在哪里?我查看了parse.y,不知道如何搜索它,因为“&”有数千个匹配项。找到ruby实现细节的最佳方法是什么?ruby源代码本身有文档吗?ruby语言本身在ruby-lang.org上有文档记录。尤其是Ruby的页面,和。对于&运算符的块化行为,您可能会发现它很有用 我不确定&的块化行为是在哪里实现的,但它相对简单: 如果&的参数是过程,则将其阻塞 否则,在其上调用to_proc

我正在寻找Ruby源代码中一元
&
to_proc行为的证据,以便我可以写下它。这些ruby操作符的本机行为的实现保存在哪里?我查看了parse.y,不知道如何搜索它,因为“&”有数千个匹配项。找到ruby实现细节的最佳方法是什么?ruby源代码本身有文档吗?

ruby语言本身在ruby-lang.org上有文档记录。尤其是Ruby的页面,和。对于
&
运算符的块化行为,您可能会发现它很有用

我不确定
&
的块化行为是在哪里实现的,但它相对简单:

  • 如果
    &
    的参数是
    过程
    ,则将其阻塞
  • 否则,在其上调用
    to_proc
    ,并阻塞该结果(如果
    to_proc
    未定义或失败,则失败)

  • 谢谢,但是我想知道在ruby存储库中哪里可以找到实现。我很好奇是否有更好地导航源代码的文档。Ruby源文件
    proc.c
    有一个函数
    rb\u-sym\u-to\u-proc(VALUE-sym)
    。这并没有说明
    &
    是如何被解析的,但这只是一个开始……如果你找不到在ruby代码中实现
    to_proc
    行为的地方,你绝对不应该写它。你说的是ruby的哪种实现?在ISO Ruby语言规范中,相关部分在第11.3.2节方法参数、小节语义、第e)6)中。)@JörgWMittag应该假设我在谈论MRI Ruby。