ruby中试图输出直接输出实例变量的值报错了
RT!#!/usr/bin/ruby
#
class Dog
def set_aname(aName)
@name=aName
end
def get_name
return @name
end
end
adog=Dog.new
adog.set_aname("dahuang")
puts adog.name
#puts adog.get_name
#END
报错
5.rb:14: undefined method `name' for #<Dog:0xb7773870 @name="dahuang"> (NoMethodError)
必须用下面那句puts adog.get_name才行!!求解释。谢谢! 还要请教一个为什么输出nil的例子
#!/usr/bin/ruby
#
#
class Treasure
def initialize(aName,aDesc)
@name=aName
@desc=aDesc
end
def hello
puts(@name +" "+@desc)
end
end
tt=Treasure.new('wang hui','test string')
#tt.initialize('wang hui','test string')
puts tt.hello
#end
结果是
wang hui test string
nil
为什么最后输出一个nil??? 第一个:你想要的是 attr_accessor 的魔法吧,否则你根本都没定义 .name 方法怎么调用
第二个: puts 的副作用是打印输出,返回值是 nil。C 里面的 printf 还有返回值呢不是
页:
[1]