Ruby安全导航(&。)如何实现?

时间:2018-08-13 08:22:56

标签: ruby

我试图弄清楚安全导航操作员是如何实现的,但没有找到它的来源,很想知道它的工作原理和效率。

2 个答案:

答案 0 :(得分:7)

安全导航操作符是在Feature #11537之后实施的。

它是Ruby核心架构的一部分,即在语言解析器中实现,并在虚拟机中具有操作码。因此,没有一个地方可以实施操作员。它的第一个版本已添加到提交a356fe1c中,但此后已经看到了多个扩展名。

至于效率,答案可能是:相当。但是,您可能需要运行自己的基准测试,以确认它是否符合您的要求。

答案 1 :(得分:2)

在使用C将安全导航运算符实现为核心语言之前,曾经有一个具有类似功能的gem称为andand。如果您想研究如何使用Ruby来实现这种方式,那么andand源是一个很好的起点:

https://github.com/raganwald/andand

require 'andand'

nil.andand.some_method
=> nil