- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在以下代码中来自 ruby docs ,为什么 orig_exit
最终没有在无限递归中调用自己?
module Mod
alias_method :orig_exit, :exit
def exit(code=0)
puts "Exiting with code #{code}"
orig_exit(code)
end
end
include Mod
exit(99)
最佳答案
why doesn't orig_exit end up calling itself in infinite recursion?
因为这里没有递归。
首先,exit
被调用,从最后一行 (exit(99)
) 开始调用 orig_exit
,这是一个不同的功能。除非 orig_exit
显式调用 exit
(没有理由相信它确实如此),否则不可能进行递归。当 orig_exit
返回时,它的返回值也从 exit
返回。
alias_method
已将 名为 exit
的方法重命名为 orig_exit
,然后是一个名为exit
已定义。
关于ruby - alias_method 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293048/
这个问题在这里已经有了答案: How to alias a class method in rails model? (5 个回答) 去年关闭。 考虑以下类: class Foo def an_i
在以下代码中来自 ruby docs ,为什么 orig_exit 最终没有在无限递归中调用自己? module Mod alias_method :orig_exit, :exit def
我对 alias_method 感到困惑.下面的示例似乎应该产生一个无限循环,但实际上并没有: class ApplicationController dual_accessor :fil
我无法理解这段代码中 alias_method 的用途 ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.class_eval do alia
我无法理解这段代码中 alias_method 的用途 ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.class_eval do alia
在 Ruby 中,您可以通过多种方式重新定义方法。一种是打通eigenclass,也就是单例类,还有一种是使用instance_eval。但是,alias_method 仅适用于特征类。为什么会这样,
我最近一直在阅读 Metaprogrammin Ruby 第 2 版,在第 5 章的末尾,他们提供了一个小测验 Your task is to change Fixnum class so that
我有一个公开两个接口(interface)方法 client_options 和 user_options 的类,在这个祖先级别,它们等同于 default_options。我不希望其他开发人员直接实
我一直在尝试修补全局缓存模块,但我不明白为什么它不起作用。 有人有什么建议吗? 这是错误: NameError: undefined method `get' for module `Cache'
我找到了一篇关于 alias 与 alias_method 的博文。如该博客文章中给出的示例所示,我只是想将一个方法作为同一个类中另一个方法的别名。我应该使用哪个?我总是看到使用 alias,但有人告
假设我有一个包含三个子类的基类。基类有一个大多数子类通用的方法,它有一个别名: class Beer def bottle_content '250 ml' end alias_m
我正在尝试覆盖 Rails 的“fields_for”方法,我目前正在这样做: module ActionView::Helpers::FormHelper include ActionView:
我正在开发我的网络应用程序,我想覆盖一个方法,例如,如果原始类是 class A def foo 'original' end end 我想重写 foo 方法,可以这样做 class
如果这两个方法只是同义词,为什么人们还要费心写额外的字符“_chain”? 最佳答案 没有。 alias_method 是 Ruby 的标准方法。 alias_method_chain 是一个 Rai
我有一个关于 Mechanize::Cookie 行为不端的问题,我想尝试用猴子修补它。我的代码: class Mechanize::Cookie class << self; alias_met
我在理解 alias_method/alias_method_chain 时遇到一点困难。我有以下代码: module ActionView::Helpers module FormHelper
class Country < ActiveRecord::Base #alias_method :name, :langEN # here fails #alias_method :name
我有一个直接从 ActiveResource::Base 继承的模型,我正在尝试为记录表中的大部分列运行 alias_method,但结果是一个 NameError: NameError: undef
什么在以后调用时更快: def first_method?() second_method?() end 或 alias_method :first method, :second_method 如果
我有以下初始化程序: app/config/initializers/store_location.rb module StoreLocation def self.skip_store_loca
我是一名优秀的程序员,十分优秀!