eigenclass

    74熱度

    3回答

    我錯過了某處的備忘錄,我希望你會向我解釋這一點。 爲什麼對象的特徵類與self.class不同? class Foo def initialize(symbol) eigenclass = class << self self end eigenclass.class_eval do attr_accessor symbol

    2熱度

    4回答

    我有兩個問題: f_1屬於元類匿名類沒有方法? 方法f_2屬於匿名類嗎? 相關下面的代碼: car = "car" class << car def self.f_1 puts "f_1" end def f_2 puts "f_2" end end

    3熱度

    2回答

    以下是處理:我需要使用某些方法擴展具體類的實例。我需要包括模塊內的生活方式,我希望Box實例能夠包括動態模塊。 我現在用一個鉤子與一個eval: class Box def after_initialize if self.injected_module.present? eval("class << self; include #{self.injected_mo

    8熱度

    2回答

    我目前正在嘗試使用Ruby和Rails,並且已經在關於元編程的教程和書籍中找到了一些小節。許多人提到它是Ruby的一個重要組成部分,但他們並沒有詳細說明。就好像元編程是Ruby程序員的最終前沿。來自.NET背景,我很難理解它爲何如此有用。 使用元編程有什麼好處? 什麼是特徵類,它與單例有什麼不同? 在什麼情況下使用元編程通用? 使用代碼來修改其他代碼的行爲,特別是不是您自己的代碼的行爲有什麼道德影