测试了实习生,甚至连几个同事还不清楚,题目如下
class A
attr_accessor :b
def test
b='test'
end
end
a = A.new
a.test
puts a.b
请问最后输出结果是什么,不少人以为是‘test'
class A
def b
@b
end
def b= var
@b = var
end
def test
b='test'
end
end
该输出啥就输出啥啊
#5 楼 @ashchan #4 楼 @jjym #3 楼 @flypiggys #2 楼 @zhenning #1 楼 @quakewang 大家基础概念不错啊,哈哈
class A
attr_accessor :b
def test
@b='test'
end
end
a = A.new
a.test
puts a.b
这么写得出的应该就是 "test" 不好意思,我也在找实习。还请指教…
@ShiningRay 我测了一下,没有任何输出,但如果最后一句改为 p a.b 则输出 nil,这是怎么回事呢,查到一篇文章 http://blog.chinaunix.net/uid-21843387-id-3294617.html ,但还是不明白,求解
#23 楼 @igordonshaw http://ruby-doc.org/core-2.0/Kernel.html#method-i-p p 是调用参数的 inspect 方法,将其以字符串的形式输出
大家好,关于这个问题我也有点不明白...
class A
attr_accessor :b
def initialize
@b = 2
end
def test
b
end
end
a = A.new
puts a.test
为啥这时候 test 方法中的 b 就和 self.b 是一个值了呢?