Ruby “attr:str”在这段代码中有什么用途
这里的代码显示了Ruby “attr:str”在这段代码中有什么用途,ruby,Ruby,这里的代码显示了attr:str。它的用途是什么?这段代码是如何工作的 class SizeMatters include Comparable attr :str def <=>(anOther) str.size <=> anOther.str.size end def initialize(str) @str = str end def inspect @str
attr:str
。它的用途是什么?这段代码是如何工作的
class SizeMatters
include Comparable
attr :str
def <=>(anOther)
str.size <=> anOther.str.size
end
def initialize(str)
@str = str
end
def inspect
@str
end
end
class SizeMatters
包括可比
属性:str
def(另一个)
str.size另一个str.size
终止
def初始化(str)
@str=str
终止
def检查
@str
终止
终止
无法理解第3行中attr的用法。就连我都知道
attr\u accessor
attr\u accessor:str
在类上定义了两个方法:str
和str=
attr:str
仅定义一个:str
attr
和attr\u reader
是一样的。attr\u访问器:str
在类上定义了两个方法:str
和str=
attr:str
仅定义一个:str
attr
和attr\u reader
是一回事。这是Ruby中的访问器列表:
attr_reader :var
# has the effect of:
def var
@var
end
attr
作为attr\u阅读器
以代码中使用的形式工作:attr:str
下面是在类的实例中使用的示例:
sm = SizeMatters.new('hello')
sm.str #=> "hello"
sm.str = 'hi' #=> undefined method `str=' for hello:SizeMatters
无法为SizeMatters
如果用作
attr::str,则true
用作attr\u访问器
,但不推荐使用。
参考请点击这里:这是Ruby中的访问器列表:
attr_reader :var
# has the effect of:
def var
@var
end
attr
作为attr\u阅读器
以代码中使用的形式工作:attr:str
下面是在类的实例中使用的示例:
sm = SizeMatters.new('hello')
sm.str #=> "hello"
sm.str = 'hi' #=> undefined method `str=' for hello:SizeMatters
无法为SizeMatters
如果用作
attr::str,则true
用作attr\u访问器
,但不推荐使用。
此处的参考检查:
'cat'。中间('ant',dog')
返回true
但'gnu'。中间('ant',dog')
返回'false'。为什么会这样?在上面的代码中,我定义了一个可比较的
mixin,那么为什么需要定义方法def(另一个)
@steenslag@amarjeetsingh这是完全不同的问题。字符串“cat”按字母顺序介于“ant”和“dog”之间,而string的方法是按字母顺序进行比较的。SizeMatters实例是通过字符串大小(通过它的方法)来比较的。'cat'。between('ant','dog')
返回true
,但'gnu'。between('ant','dog')
返回'false'。为什么会这样?在上面的代码中,我定义了一个可比较的
mixin,那么为什么需要定义方法def(另一个)
@steenslag@amarjeetsingh这是完全不同的问题。字符串“cat”按字母顺序介于“ant”和“dog”之间,而string的方法是按字母顺序进行比较的。SizeMatters实例是通过字符串大小(通过它的方法)来比较的。如果您能够准确地描述模块#attr
的文档中您不清楚的内容,这将非常有帮助,这样Ruby开发人员就可以改进文档了。这样,其他人就不会遇到同样的问题。如果您能够准确地描述模块#attr
的文档中您不清楚的内容,这将非常有帮助,这样Ruby开发人员就可以改进文档了。这样,其他人就不会遇到同样的问题。