gpt4 book ai didi

ruby - 不使用@符号访问实例变量

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:51 26 4
gpt4 key购买 nike

这是书中的一个例子:

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

在方法 add_unique_word 中,作者访问了变量 unique 而没有使用 @ 符号 (unique.size - 1)。这怎么可能,为什么会这样?

最佳答案

这一行 attr_reader :unique, :index 为属性创建了一个 getter:

def unique
@unique
end

您在 unique.size - 1 行中看到的是对 getter 的方法调用,然后访问它的 size 属性。

关于ruby - 不使用@符号访问实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15509416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com