在irb中进行实验时,我经常调用制表符来显示目标对象的可用方法列表。
输出此方法名称列表的函数是否可以是在Object或BasicObject中定义的函数,还是由irb本身实现的函数?
我假设这个列表是调用public_methods返回的数组的格式化结果,但列表似乎有所不同:
1.9.3-p448 :026 > 1.
Display all 115 possibilities? (y or n)
1.divmod 1.inspect
1.numerator 1.respond_to? 1.to_enum
1.__id__ 1.downto 1.instance_eval
1.object_id 1.respond_to_missing? 1.to_f
1.__send__ 1.dup 1.instance_exec
1.odd? 1.round 1.to_i
1.abs 1.enum_for 1.instance_of?
1.9.3-p448 :027 > 1.public_methods.sort
=> [:!, :!=, :!~, :%, :&, :*, :**, :+, :+@, :-, :-@, :/, :<, :<<, :<=, :<=>, :==, :===,
:=~, :>, :>=, :>>, :[], :^, :__id__, :__send__, :abs, :abs2, :angle, :arg,
:as_null_object, :between?, :ceil, :chr, :class, :clone, :coerce, :conj,
:conjugate, :define_singleton_method, :denominator, :display, :div
例如,没有任何操作员方法显示在选项卡列表中。那么,标签列表来自哪里?
答案 0 :(得分:1)
IRb中的完成由irb/completion
标准库提供,遗憾的是,该库未记录。您可以在此处找到您感兴趣的案例的来源:https://GitHub.Com/Ruby/Ruby/blob/trunk/lib/irb/completion.rb#L149-195