[問題] 同個module裡引用class
大家好,我日前fork了一個專案並改寫了一下,
在某個地方碰到問題,
https://github.com/Unicellular/reversi/blob/master/board.rb
在上面這個檔案裡可以看到,我使用了Reversi::Position這麼長的方式來調用這個class
因為如果只寫Position,程式會顯示「找不到Reversi::Board::Position」這個錯誤。
不過在instance method裡這樣用就沒有問題,
我想知道的是,為什麼會有這樣的差異?為什麼ruby會這樣設計?
有沒有方法可以不用寫這麼長?
原來的版本是在position.rb裡寫個pos function。
不過我覺得這樣好迂迴,希望是能在board.rb裡設定。
補充:我是用ruby 2.0.0
====
另外歡迎大家fork我的專案寫AI,會自我學習的更好XD
--
★ 辰星! 五 歡迎加入五行戰鬥牌的奇幻世界!
★ ★ 太白! 歲星! 星 官方網站:(內有討論區)
★★ 鎮星!熒惑! 連 http://goo.gl/jC2sp
「當蒼茫天穹中 那並非最閃亮 珠 PTT台大社版:NTU-CFE
但卻最純淨的五顆星 連成一線時,!
天與地的共鳴 將永不止歇,其力量可至無限。」 ψrexkimta
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.161.118
※ 編輯: rexkimta 來自: 114.36.161.118 (12/23 22:12)
→
12/24 07:00, , 1F
12/24 07:00, 1F
剛剛自己試了一下,發現也神奇的可以,後來想到之前把這些class寫在同一個檔裡時,
也出現同一個錯誤,後來把Position放在Board之前就沒問題了,
所以把require_relative的順序調整了一下,果然又出現了。
`<class:Board>': uninitialized constant Reversi::Board::Position (NameError)
所以看起來是直譯式語言的特性,只會向前不會向後找?
※ 編輯: rexkimta 來自: 114.36.175.220 (12/24 07:26)
→
12/25 21:02, , 2F
12/25 21:02, 2F
→
12/26 00:24, , 3F
12/26 00:24, 3F
→
12/26 00:25, , 4F
12/26 00:25, 4F
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章