我是 Ruby 编程的新手,现在我已经看到了一些示例,其中调用了一个实例变量,而它前面没有“@”符号。
我不确定这是否是因为正在调用方法并且实例变量作为attr_reader
类中的结果存储在方法中,或者是因为我对实例变量的理解有误。
下面是我所指的示例,取自 Russ Olsen 的 Eloquent Ruby,其中@unique
数组具有size
调用的方法,其前面没有“@”符号:
class TextCompressor
attr_reader :unique, :index
def initialize(text)
@unique = []
@index = []
add_text(text)
end
def add_text(text)
words = text.split
words.each { |word| add_word(word) }
end
def add_word(word)
i = unique_index_of(word) || add_unique_word(word)
@index << i
end
def unique_index_of(word)
@unique.index(word)
end
def add_unique_word(word)
@unique << word
unique.size - 1
end
end