cost 386 ms
Ruby 中的 singleton class 是什么?

[英]What is a singleton class in Ruby?

我無法理解 ruby 中的eigenclass或singleton class的概念。 我讀了很多,特征類是一個類的 class 。 這對我來說沒有意義,因為對我來說,一個類的 class 實際上是Class ,因為所有類實際上都是 class Class的實例。 我不太明白的另一件事是以下語句: ...

為什么我能夠使用像`puts`這樣的內核單例方法?

[英]Why am I able to use Kernel singleton methods like `puts`?

在Ruby中,方法puts是Kernel模塊的單例方法。 通常,當模塊include d或由另一個模塊extend ,模塊(但不是其單例類)將添加到繼承樹中。 這有效地使模塊的實例方法可用於模塊或其單例類(分別用於include和extend )......但是混合模塊的單例方法仍然不可 ...

Ruby中單例類的BasicObject的Singleton類

[英]Singleton class of singleton class of BasicObject in Ruby

這主要是一個“學術”的,但在這里: 根據這個Ruby eigenclass圖(略加編輯): BasicObject.singleton_class.singleton_class.superclass是Class 。 但是,在Ruby解釋器(Ruby v2.5.1)上運行 ...

如何在Ruby中創建執行先前給定塊的方法?

[英]How to create a method that executes a previously given block in Ruby?

我有一個為子類構建的類。 在我的用例中,由於只需要一個實例,所以我不想創建一個子類。 因此,我將更改initialize方法以支持以下用法。 我如何支持上述用法? 順便說一句:我為Ruby 1.8.7項目找到了以下解決方案,但它們對我來說很尷尬。 ...

Ruby:打開對象本征類並對其進行更改時,提供真實的示例

[英]Ruby: provide real world examples when have you opened objects eigenclass and changed it

來自C#世界,我習慣於認為類是對象的不可變定義,並且每個對象都有固定的類。 我正在嘗試開放使用的可能性 我不是在談論class << self 。 我說的是更改一個或幾個對象的類定義,但並非所有對象都像class << self那樣。 在使用紅寶石 ...

Ruby對象可以有多個特征類嗎?

[英]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 。 有沒有辦法使模塊更健壯,並在上面的錯誤范圍內提供常 ...

RSpec單元測試特征類:未定義的方法

[英]RSpec unit testing an eigenclass: undefined method

我正在嘗試在我的Product model測試方法cumulative_cost 。 因此,我將運行類似Product.where(name:"surfboard").cumulative_cost的數據。假設它返回兩條記錄,一條記錄的成本為1000,另一條記錄的成本為150,它將返回= ...

Ruby-與obj的本征類共享局部變量

[英]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 。 然后,我需要在我的應 ...

為什么在打開類對象的本征類時,“類<<自我”比“類<< Foo”更常見?

[英]Why is `class << self` more common than `class << Foo` for opening a class object's eigenclass?

Ruby程序員通常在類體內使用class &lt;&lt; self來打開類對象的特征類,如下所示: 但是,我很少看到這種等效形式(假設Foo已經定義為一個類): 是否有理由偏愛第一種而不是第二種? ...

Ruby eigenclass(s​​igleton類)創建了嗎? 為了哪個?

[英]Ruby eigenclass (sigleton class) created? For which?

對Ruby元編程感到困惑。 所以從本教程我學到了以下內容: 所以這意味着poop方法已經用於cat對象,它是String類。 從着名的教程 “Programming Ruby”,通過定義cat.poop ,實際發生的是Ruby創建了一個匿名類,也就是單例或本征類,現在是cat對象 ...

Ruby eigenclass意外行為

[英]Ruby eigenclass unexpected behaviour

首先,讓我們添加一個方法來檢索“從此博客帖子中復制”的特征類 然后創建一個簡單的類 我期待第二次投入輸出Class 任何線索為什么會這樣? ...

在Ruby類的特征類中設置實例默認值

[英]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和對象類:奇怪的行為

[英]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 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM