什么使运营商< =>在块min?

时间:2017-01-16 20:51:06

标签: ruby

有以下代码示例:

%w{ Ruby C APL Perl Smalltalk}.min {|a,b| a.size <=> b.size}  

返回“C”

你能解释一下为什么“C”吗?是什么让运营商“&lt; =&gt;” ?

1 个答案:

答案 0 :(得分:1)

如果左边小于右边,太空船操作员返回-1,如果它们相等则返回0,如果左边大于右边,则返回1。

在这种情况下,您需要比较数组中每个单词的长度并返回最短的单词。如果您从块中的变量中删除.size,则会返回按字母顺序排列的第一个单词(即&#39; APL&#39;)。

What is the Ruby <=> (spaceship) operator?