看板 [ Ruby ]
討論串[問題] Module觀念的問題
共 5 篇文章
首頁
上一頁
1
下一頁
尾頁

推噓0(0推 0噓 1→)留言1則,0人參與, 最新作者yzugsr (Bird)時間18年前 (2007/02/01 03:52), 編輯資訊
1
0
0
內容預覽:
module A. def self.test. str = "class B; end". eval(str). end. end. A.test. 這樣的程式碼會產生A這個module, 及A::B的class. 我的問題是:要怎樣在module A的class method中evaluate一

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者polarpolar (破啦貝爾)時間18年前 (2007/02/01 07:24), 編輯資訊
1
0
0
內容預覽:
看不太懂你要問啥 @@. 不用改就可以產生 A::B 啦~. ---. 不過既然不要用 eval,最好的方法還是. def self.create(str). const_set str, Class.new. end. 吧? XD. --. ╭───╮╭───╮┬ ╭───╮╭───╮.

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者yzugsr (Bird)時間18年前 (2007/02/01 10:47), 編輯資訊
1
0
0
內容預覽:
我好像沒講清楚 @@. 簡單來說,我是希望在module A中evaluate一個字串. 創造出::B的物件(而非A::B) 也就是說不要在A的nesting之下. --. 發信站: 批踢踢實業坊(ptt.cc). ◆ From: 61.216.188.62.

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者yzugsr (Bird)時間18年前 (2007/02/01 11:13), 編輯資訊
1
0
0
內容預覽:
自己try出來了. module A. def self.test. str = "class B; end". Object.class_eval(str). end. end. A.test. 加了紅字就會建出::B,不加就會建出A::B. 其實我也不知其所以然..... --. 發信站:

推噓3(3推 0噓 2→)留言5則,0人參與, 最新作者godfat (godfat 真常)時間18年前 (2007/02/01 13:02), 編輯資訊
0
0
0
內容預覽:
容我推測. 沒寫 Object. 當然是 self. 的意思. 亦即以當前 scope 為基準,在 A.test 中當然是指 A. 所以產生出來的 class 自然是在 A 裡面了. 如果你寫成 Object. 的話,就變成寫到 Object 這個 class 裡面. 所以 B 其實是 Object
(還有658個字)
首頁
上一頁
1
下一頁
尾頁