我似乎不明白为什么如果它们没有初始化,我无法访问实例变量。当我将实例变量添加到attr_accessor时,我收到以下错误。
syntax error, unexpected ':', expecting keyword_end (SyntaxError)
attr_reader :name :list
我可以访问name和age的属性方法,但不能访问其他属性方法。这是我的代码。
class Dancer
attr_reader :name
attr_accessor :age :list
def initialize(name, age)
@name = name
@age = age
@list = []
end
def pirouette
"*twirls*"
end
def bow
"*bows*"
end
def queue_dance_with(partner)
@partner = partner
end
def card
@list << @partner
end
def begin_next_dance
puts "Now dancing with #{@list[0]}"
@list.shift
end
end
为什么我无法访问@partner
和@list
?如果我将它们添加到attr_accessor
或attr_reader :list :partner
,则会给我一个错误。
答案 0 :(得分:3)
逗号:
# ⇓
attr_accessor :age, :list
答案 1 :(得分:1)
您错过了,
attr_accessor :age, :list