问题标签 [spaceship-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
364 浏览

ruby - Ruby 中 <=> 运算符的名称是什么?他们怎么称呼它?

在 Ruby 中有<=>运算符。在 API 中,他们没有命名它的名字,只是:

该类必须定义 <=> 运算符...

Comparable 使用 <=> 来实现常规比较...

...集合中的对象还必须实现有意义的 <=> 运算符...

它叫什么名字?

0 投票
3 回答
150 浏览

ruby - Ruby排序-为什么“预期:[7,6,5,5,4,3,3]”时的rspec错误似乎与“得到:[7,6,5,5,4,3,3]”相同?

结果:

测试:

代码:

我现在有一个非常简单的排序,一旦我完成了这个工作,意图将变得更加复杂(因此比较方法中的细节)。

0 投票
1 回答
1925 浏览

groovy - 如何链接 groovy 的宇宙飞船运算符进行多级排序?

Groovy 有 spaceship 运算符<=>,它提供了一种简单的方法来实现比较。我怎样才能以更时髦的方式链接它,然后是下面的代码?在此示例中,我想先按价格比较商品,如果两者价格相同,再按名称比较商品。

0 投票
2 回答
123 浏览

ruby - 如何在 Ruby 中调用超类比较器(宇宙飞船)方法?

我正在尝试一个类的比较器而不重写超类的比较逻辑,但由于某种原因,我无法从超类比较器获取返回值。可以使用以下代码段演示此问题:

我得到以下输出:

我究竟做错了什么?

0 投票
10 回答
57125 浏览

mysql - MySQL 中的这个运算符 <=> 是什么?

我正在编写由以前的开发人员编写的代码,并在查询中说,

<=>在这个查询中是什么意思?是否等于=?还是语法错误?

但它没有显示任何错误或异常。我已经知道<>=!=MySQL中。

0 投票
3 回答
1233 浏览

swift - Swift 有没有宇宙飞船运算符 <=>,如果没有,如何创建自定义运算符?

来自维基百科

与传统的相等运算符不同,它将根据参数是否相等或不相等返回真或假,宇宙飞船运算符将根据左参数相对于右参数的值返回 1、0 或 -1。如果左参数大于右参数,则运算符返回 1。如果左参数小于右参数,则运算符返回 -1。如果两个参数相等,则运算符返回 0。

spaceship 运算符主要用于排序中的比较。

0 投票
2 回答
280 浏览

ruby - .sort 中组合比较运算符 (<=>) 的替代方案

我知道如果我想按降序对数组进行排序,我必须执行以下操作:

但是,如果我想避免使用“宇宙飞船”(<=>) 运算符,我会直觉地认为我可以执行以下操作,但是当我在 repl.it 上运行它时收到错误消息:

错误是这样的:

有人请帮助我!

PS我对Ruby很陌生。我只是在学习 Codecademy 的课程。

0 投票
3 回答
14429 浏览

ruby - ruby 的 <=> 运算符和排序方法

上面,我创建了一些播放器对象并将它们添加到之前为空的数组@players 中。

然后,我将 <=> 重新定义为:

然后我可以运行这段代码

我在@players 中的玩家对象数组从高分到低分排序。我想这对我来说看起来有点黑。我有点不清楚这里发生了什么。我如何找出幕后发生的事情?

我所知道的是,如果你取两个值并使用宇宙飞船运算符/一般比较运算符:

有时,似乎 Ruby 有很多低级别的东西在发生,而我在高级别上看不到我正在编程的东西。这看起来很自然......但这种情况似乎特别从低级别的事情中删除排序方法。sort 如何使用 spaceship 算子?为什么以我们现在所做的方式重新定义宇宙飞船运算符允许我们对对象进行排序?

0 投票
2 回答
296 浏览

ruby - 宇宙飞船运算符和条件语句

快速提问。有没有更优雅的方式来写这样的东西?

0 投票
1 回答
175 浏览

ruby - 当 Spaceship 运算符在 Ruby 中被覆盖时,实际上会发生什么?

我是红宝石的新手。有人可以解释一下 <=> 方法在以下程序中是如何工作的。下面如何使用“其他”参数?