metaprogramming 或者叫做中介編程

簡單的說呢 就是寫一個程式讓他自己會去寫程式。

什麼意思呢? 請看下面的例子:print "你想要什麼?" creature_class = gets case gets when "貓耳娘" creature = 貓耳娘.new when "長髮蘿莉" creature = 長髮蘿莉.new end – 上面的程式碼可以達到我們的要求:使用者輸入什麼東西,就建立什麼物件的實體。 但是如果我們今天要加入雙馬尾大姐、女僕等等,就又要多寫兩個判斷式了。有沒有更乾淨的寫法呢? – print "你要招換什麼生物?" creature_class = gets eval( "creature = " + creature_class + ".new" ) – 看出來了嗎? eval這個函式接受了一個字串,並且叫ruby把這個字串當做一段程式碼來編譯。 也達到了metaprogramming的意義 動態的產生程式。
創作者介紹
創作者 PogaPress 的頭像
poga

PogaPress

poga 發表在 痞客邦 留言(0) 人氣( 30 )