'< ==>'的含义是什么?在Ruby?
示例:代码来自以下类,它以x.x.x
,
def <==>(other)
# Some code here
end
以下代码来自此类,用于命令x.x.x
,
class Version
attr_reader :fst, :snd, :trd
def initialize(version="")
v = version.split(".")
@fst = v[0].to_i
@snd = v[1].to_i
@trd = v[2].to_i
end
def <=>(other)
return @fst <=> other.fst if ((@fst <=> other.fst) != 0)
return @snd <=> other.snd if ((@snd <=> other.snd) != 0)
return @trd <=> other.trd if ((@trd <=> other.trd) != 0)
end
def self.sort
self.sort!{|a,b| a <=> b}
end
def to_s
@sorted = @fst.to_s + "." + @snd.to_s + "." + @trd.to_s
#Puts out "#{@sorted}".
end
end
答案 0 :(得分:12)
那是spaceship operator。但是,它实际上是<=>
(不是<==>
)。
虽然这不是它的正式名称,但我敢肯定,它是该运营商最常用的名称。
是一个比较运算符它是一个强大的运算符,只需执行此操作,您就可以对自己的类型进行排序,并参与许多其他细节,例如Enumerable mixin。
答案 1 :(得分:3)
你为什么不尝试一下?只需键入您发布的代码,就可以自己看到它并不意味着什么,因为<==>
不是Ruby中的有效方法名称。您发布的代码只会引发SyntaxError
。