[英]What is a singleton class in Ruby?
我無法理解 ruby 中的eigenclass或singleton class的概念。 我讀了很多,特征類是一個類的 class 。 這對我來說沒有意義,因為對我來說,一個類的 class 實際上是Class ,因為所有類實際上都是 class Class的實例。 我不太明白的另一件事是以下語句: ...
[英]What is a singleton class in Ruby?
我無法理解 ruby 中的eigenclass或singleton class的概念。 我讀了很多,特征類是一個類的 class 。 這對我來說沒有意義,因為對我來說,一個類的 class 實際上是Class ,因為所有類實際上都是 class Class的實例。 我不太明白的另一件事是以下語句: ...
[英]Why am I able to use Kernel singleton methods like `puts`?
在Ruby中,方法puts是Kernel模塊的單例方法。 通常,當模塊include d或由另一個模塊extend ,模塊(但不是其單例類)將添加到繼承樹中。 這有效地使模塊的實例方法可用於模塊或其單例類(分別用於include和extend )......但是混合模塊的單例方法仍然不可 ...
[英]Singleton class of singleton class of BasicObject in Ruby
這主要是一個“學術”的,但在這里: 根據這個Ruby eigenclass圖(略加編輯): BasicObject.singleton_class.singleton_class.superclass是Class 。 但是,在Ruby解釋器(Ruby v2.5.1)上運行 ...
[英]How to create a method that executes a previously given block in Ruby?
我有一個為子類構建的類。 在我的用例中,由於只需要一個實例,所以我不想創建一個子類。 因此,我將更改initialize方法以支持以下用法。 我如何支持上述用法? 順便說一句:我為Ruby 1.8.7項目找到了以下解決方案,但它們對我來說很尷尬。 ...
[英]Ruby: provide real world examples when have you opened objects eigenclass and changed it
來自C#世界,我習慣於認為類是對象的不可變定義,並且每個對象都有固定的類。 我正在嘗試開放使用的可能性 我不是在談論class << self 。 我說的是更改一個或幾個對象的類定義,但並非所有對象都像class << self那樣。 在使用紅寶石 ...
[英]Can a Ruby object have multiple eigenclasses?
Eigenclasses被添加到繼承層次結構中。 如果添加了多個單例方法,是將這些方法添加到相同的本征類,還是將不同的本征類都注入到該對象的繼承層次結構中? 例如 這會增加2個特征類:一個是'test'方法,另一個是'test2'方法? 或兩個方法的一個本征類? ...
[英]How to make a module constant also visible within an eigenclass?
我創建了一個包含常量NAME和方法hello的模塊。 如果類包含模塊,則兩個定義應在不同范圍內可見。 但是,常量在本征class << self的實例方法范圍中是不可見的, class << self 。 有沒有辦法使模塊更健壯,並在上面的錯誤范圍內提供常 ...
[英]Why fixnum doesn't have eigenclass?
這個方法是返回任何對象的特征類: 字符串示例: 大批: 但是使用 Fixnum: 為什么? ...
[英]Builder's XmlMarkup object loses constants?
我嘗試將舊版應用程序從Ruby 1.8.7升級到2.2.3。 之后,生成器模板的呈現會引發有關未知類的錯誤。 未初始化的常量Builder :: XmlMarkup :: BigDecimal(NameError) 似乎在Builder :: XmlMarkup常量之類的類消 ...
[英]RSpec unit testing an eigenclass: undefined method
我正在嘗試在我的Product model測試方法cumulative_cost 。 因此,我將運行類似Product.where(name:"surfboard").cumulative_cost的數據。假設它返回兩條記錄,一條記錄的成本為1000,另一條記錄的成本為150,它將返回= ...
[英]Ruby - Share local variable with the obj's eigenclass
我試圖根據傳遞給它的initialize方法的哈希my_hash動態定義初始化的Ruby對象MyObject上的方法。 在initialize方法的主體中,我具有以下內容: undefined local variable or method 'key' for #<Class: ...
[英]Initializing class instance variables of subclasses from the superclass
給定下面代碼中的超類,我希望所有子類都具有一些實例變量。 下面的代碼可以執行此操作,但是無法為所有可能的子類正確初始化該變量。 我打開了超類的本征類。 這是代碼(也在rubyfiddle中 ): 我想初始化所有可能的sublcasses。 在前兩個SomeSuperCla ...
[英]Having a module singleton extending a class
我的應用程序中有一個單例,該單例可在多個應用程序之間重用。 我希望單例從類中獲取一些默認方法,但也能夠自定義模塊/特征類。 最重要的是,我不想在每次調用實用程序單例時都調用instance 。 這是一個例子。 假設我的默認類是Universe::Earth 。 然后,我需要在我的應 ...
[英]Why is `class << self` more common than `class << Foo` for opening a class object's eigenclass?
Ruby程序員通常在類體內使用class << self來打開類對象的特征類,如下所示: 但是,我很少看到這種等效形式(假設Foo已經定義為一個類): 是否有理由偏愛第一種而不是第二種? ...
[英]Ruby eigenclass (sigleton class) created? For which?
對Ruby元編程感到困惑。 所以從本教程我學到了以下內容: 所以這意味着poop方法已經用於cat對象,它是String類。 從着名的教程 “Programming Ruby”,通過定義cat.poop ,實際發生的是Ruby創建了一個匿名類,也就是單例或本征類,現在是cat對象 ...
[英]Ruby eigenclass unexpected behaviour
首先,讓我們添加一個方法來檢索“從此博客帖子中復制”的特征類 然后創建一個簡單的類 我期待第二次投入輸出Class 任何線索為什么會這樣? ...
[英]Setting instance defaults in the eigenclass of ruby classes
這是我設法做到這一點的一種方法。 我希望最終結果是AThing中的界面。 我真正討厭的是(我覺得必須有一種更好的完成方式)是@stuff = self.class.stuff。 有沒有一種更好的方法可以使用eigenclass為其自身的所有實例設置默認數據集,同時保持“漂亮”接口 ...
[英]Determine Class from Eigenclass
在Ruby中,獲取類Foo本征類是一個簡單的 我對逆操作感興趣:從本征類本身獲取本征類的所有者: 我不確定這是否可行,因為本征類是Class的匿名子Class ,所以Foo在其繼承層次結構中沒有出現。 檢查本征類的方法列表也不令人鼓舞。 eigenclass.name返回ni ...
[英]define_method and the object Class: strange behavior
編輯:讓我擴大一下我的意圖是: 假設ruby對象從其類的實例方法獲取其方法。 我試圖“證明”的是,通過將實例方法添加到該對象的類,它們將成為該對象本身的方法。 所以: 我實際上已經弄清楚了為什么會這樣。 那是因為Class.class是... Class! 由於C ...
[英]Can eigenclasses be enumerated?
調用ObjectSpace.each_object(Class)似乎不返回任何特征類。 例如,在研究Ruby元類時:為什么三個定義單例方法? ,我發現雖然ObjectSpace.count_objects[:T_CLASS]在使用類方法定義新類的情況下增加了3,但ObjectSpace.ea ...