Re: [問題] Singleton

看板Ruby作者 (火星人)時間12年前 (2012/09/26 19:03), 編輯推噓3(305)
留言8則, 3人參與, 最新討論串3/3 (看更多)
恕刪

09/26 16:05,
話說那些打算使用Singleton模組的類別都沒有繼承
09/26 16:05

09/26 16:06,
不過類別變數的繼承BUG好像修好了 父類子類不會影響
09/26 16:06
看到這個我又去實驗一下 === code === class C1 @@a = 1 def self.a @@a end end puts C1.a #=> 1 class C2 < C1 @@a = 2 def self.a @@a end end puts C2.a #=> 2 puts C1.a #=> 2 === code === 所以還是類別變數在同一個繼承體系中還是同一個喔! 我是用Windows 7,ruby 1.9.3p0 結論就是:盡量不要用類別變數,會出現出乎意料的bug (用神奇的||=會更容易) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.226.131.107

09/26 19:03, , 1F
欸對了忘了說,這個應該不是bug,本來就是這樣設計的
09/26 19:03, 1F

09/26 20:56, , 2F
突然覺得奇怪 我到底從哪裡看到修好的訊息...
09/26 20:56, 2F

09/26 20:59, , 3F
話說那個 ||= 應該是nil時初始化吧 好像還有 &&=
09/26 20:59, 3F

09/26 22:13, , 4F
是阿,所以當你以為是初始化,其實卻改到父類別的變數~
09/26 22:13, 4F

09/26 22:47, , 5F
不過這些類別我也沒繼承 因為Singleton不太有繼承需要...
09/26 22:47, 5F

09/26 22:47, , 6F
但是副作用還是要小心...
09/26 22:47, 6F

10/06 18:09, , 7F
不是盡量不要用,是@@與@的差別吧,所以上一篇才說
10/06 18:09, 7F

10/06 18:09, , 8F
改成@就更好囉~
10/06 18:09, 8F
文章代碼(AID): #1GOk3bXs (Ruby)
討論串 (同標題文章)
本文引述了以下文章的的內容:
1
6
完整討論串 (本文為第 3 之 3 篇):
1
6
1
1
文章代碼(AID): #1GOk3bXs (Ruby)