metaprogramming

    57熱度

    1回答

    我有一個模塊MyModule。我動態加載類到它。我如何獲得在其名稱空間中定義的類的列表? 例子: def load_plugins Dir.glob(File.dirname(__FILE__) + '/plugins/*.rb') do |f| MyModule.class_eval File.read(f) end # now how can I fi

    3熱度

    4回答

    我需要生成一些東西,可以用作D programming language中用戶定義類型(結構或類)的唯一句柄。優選地,這將是編譯時可計算的值。如果類型的內部結構(數據佈局)發生變化,但是對於大多數其他編輯(包括將同一類型編譯到不同的應用程序中),我希望該句柄與該類型的名稱相關聯,並更改該類型的名稱。 這不是一個安全的事情,所以它不需要將很難繞過或任何 我現在的想法是使用一個字符串的東西喜歡的類型名

    3熱度

    11回答

    我需要一個C++模板,在給定類型和該類型對象的情況下,它可以根據類型是否爲整數來做出決定,同時能夠訪問實際對象。我試過這個 template <typename T, T &N> struct C { enum { Value = 0 }; }; template <int &N> struct C<int, N> { enum { Value = N }; };

    2熱度

    1回答

    在Ruby中,有沒有一種方法可以確定方法的名稱,類似於「類」方法如何返回對象的類型? 例如: def example_method puts method_name end #=> "example_method"

    5熱度

    2回答

    這種方法,我想通過以下方式來「糟蹋」加成法在Groovy Groovy中的基法行爲: Integer.metaClass.plus {Integer n -> delegate + n + 1} assert 2+2 == 5 我得到StackOverflowException(這並不奇怪) 。 有沒有什麼方法在metaclass'closure內部使用「original」加法?

    1熱度

    3回答

    我是一個vb.net新手,所以請耐心等待。是否有可能在visual basic(我使用Visual Basic 2005)中爲類創建屬性(或屬性)?所有的網絡搜索元編程讓我無處可尋。這裏有一個例子來說明我的意思。 public class GenericProps public sub new() ' ??? end sub public sub add

    10熱度

    2回答

    我的模塊中有以下模板Haskell代碼,這是更大的應用程序的一部分。 $(derive makeFoldable ''JStatement) 我懷疑是可摺疊的所生成的背景不完全是原來腦子裏想我,但我不能找到一種方法來驗證這一點。所以,最好只使用ghci,是否可以查看生成的實例? 我嘗試了以下,並得到一個語法錯誤,我猜這是因爲我做錯了™。 > derive makeFoldable ''JSta

    2熱度

    3回答

    我想玩編譯時在C++編譯器中合成常量字符串哈希值的奇特遊戲。這可以讓我用一個標識符替換字符串,大大節省了代碼的大小和複雜性。 爲了編程的清晰和簡單,如果我可以在編譯時使用簡單的內聯字符串(如「Hello」,它們是編譯時常量指針指向編譯時常量字符)進行檢查和計算,那將非常棒。 如果我可以在編譯時編入索引,我可以創建一個模板元程序來執行我想要的操作。但目前還不清楚C++標準本身是否將ct常數數組的ct

    5熱度

    2回答

    當使用Grails/GORM持久化域對象時,我經常發現自己想知道save()調用失敗的原因。 這可以很容易地通過增加邏輯來解決: if (!o.save()) { o.errors.allErrors.each { println it } } 然而,增加這個無論我做一個.save()增加了很多重複的代碼。本着DRY的精神,我想配置Grails/GORM來自動將任何保存錯誤輸出到控

    2熱度

    9回答

    我曾經和尊重過的人曾經向我表示,應用程序代碼中不應該有任何需要使用反射的情況,而且應該只在框架中使用。他是從J2EE背景來講的,我在該平臺的專業經驗通常會證明這一點;儘管我已經使用Java編寫了一次或兩次反射式應用程序代碼。 我對Ruby on Rails的體驗完全不同,因爲Ruby幾乎鼓勵您編寫動態代碼。如果沒有反射和元編程,許多Rails給你的東西都是不可能的,許多相同的技術對你的應用程序代碼