我需要帮助才能理解 - Equal to
和Comparison
之间的区别是什么?
以下是案例
x == y means `Equal to`
x = 10 and y = 10
puts "X and Y are equal" if x == y
puts "X and Y are equal" if x <=> y
我知道我何时何地可以使用等于,但我何时何地可以使用比较&lt; =&gt;
由于
答案 0 :(得分:0)
什么时候想比较?它返回-1,0,1。例如,按名字排序用户:
users_by_first = users.sort { |u1, u2| u1.fname <=> u2.fname }
答案 1 :(得分:0)
&LT; =&GT;一般比较运算符。返回-1,0或+1,具体取决于其接收者是否小于,等于或大于其参数。
http://ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html
这对于排序很有用。
答案 2 :(得分:0)
==运算符,也称为等于或等于,如果两个对象都相等则返回true,否则返回false。
"koan" != "discursive thought" # Output: => true
!=运算符,AKA不等式或bang-tilde,与==相反。如果两个对象不相等则返回true,如果它们相等则返回false。
2 == 2.0 # Output: => true
请注意,具有不同顺序的相同元素的两个数组不相等,同一个字母的大写和小写版本不相等,依此类推。
当比较不同类型的数字(例如,整数和浮点数)时,如果它们的数值相同,==将返回true。
5 <=> 8 # Output: => -1
5 <=> 5 # Output: => 0
8 <=> 5 # Output: => 1
诸如数字和字符串之类的对象,可以在比其他对象更大或更小的情况下(它们之间)进行比较,提供&lt; =&gt;。方法,也称为宇宙飞船方法。比较两个对象时,&lt; =&gt;如果第一个对象小于第二个对象(a&lt; b),则返回-1;如果它们相等(a == b)则返回0;如果第一个对象大于第二个对象(a> b),则返回1。 / p>
# String
"a" < "b" # Output: => true
"a" > "b" # Output: => false
# Symbol
:a < :b # Output: => true
:a > :b # Output: => false
# Fixnum (subclass of Integer)
1 < 2 # Output: => true
2 >= 2 # Output: => true
# Float
1.0 < 2.0 # Output: => true
2.0 >= 2.0 # Output: => true
# Time
Time.local(2016, 5, 28) < Time.local(2016, 5, 29) # Output: => true
大多数可比较或可排序的对象类(如Integer,Float,Time和String)包含一个名为Comparable的mixin,它提供以下比较运算符:&lt; (小于),&lt; =(小于或等于),==(相等),&gt; (大于),&gt; =(大于或等于)。这些方法使用了太空船操作员。
比较运算符可用于所有上述类的对象,如以下示例所示。
# Fixnum vs. Float
2 < 3.0 # Output: => true
2.0 > 3 # Output: => false
比较不同类的数量时,比较运算符将隐式执行简单类型转换。
arg2.replace(/\s+/, "");
有关Ruby运算符的更多信息,请访问this blog post。