作者showken (枭仔)
看板Ruby
标题[问题] class的内容会先跑过一遍?
时间Sun Jul 26 12:22:06 2015
-------------------------------
test.rb
-------------------------------
class S
puts 'Just started class S'
puts self
module M
puts 'Nested module S::M'
puts self
end
puts 'Back in the outer level of S'
puts self
def test
puts "test"
end
end
ss = S.new
ss.test
--------------------------------
--------------------------------
output:
--------------------------------
Just started class S
S
Nested module S::M
S::M
Back in the outer level of S
S
test
--------------------------------
今天发现就算没有instance S这个class 他的内容还是会先跑过一遍
但之後要让它再跑一次好像就没办法了
请问这样的写法会有什麽用途吗?
还是说应该要避免这样的写法呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.32.125.195
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ruby/M.1437884529.A.C50.html
1F:→ uranusjr: 没什麽好避免的, 本来就是这样, 可用可不用 07/26 12:55
2F:→ uranusjr: 要说用途的话可以用来模仿例如 C 的 #ifdef 条件编译 07/26 12:56
3F:→ showken: 谢谢~了解了 07/26 21:22
4F:→ ihower: 拿来做metaprogramming啊, Rails 超爱这招 07/26 23:10
5F:→ showken: metaprograming好酷,刚刚还找到这个 07/27 13:47
7F:→ showken: 目前还看不懂,不过感觉很厉害 07/27 13:49