Tag: 宇宙飞船运营商

为什么不排序或太空飞船(飞碟)操作员()在Ruby中使用布尔值?

在“ 是否可以根据单个对象对方法的响应来对对象列表进行排序? ”,我发现飞碟对布尔值不起作用。 考虑: Ruby 1.8.7: [true, false].sort # => undefined method `’ for true:TrueClass (NoMethodError) true false # => undefined method `’ for true:TrueClass (NoMethodError) Ruby 1.9.3: [true, false].sort # => comparison of TrueClass with false failed (ArgumentError) true false # => nil true true # => 0 false true # => nil 它可能与true和false有关,没有规范的排序顺序,因为它首先出现? […]

ruby的运算符和排序方法

player1 = Player.new(“moe”) player2 = Player.new(“larry”,60) player3 = Player.new(“curly”, 125) @players = [player1, player2, player3] 上面,我创建了一些播放器对象,并将它们添加到以前空的数组@players中。 然后,我重新定义为此: def (other) other.score score end 然后我可以运行此代码 @players.sort 我在@players中的玩家对象数组从高分到低分排序。 我想这对我来说看起来有点黑了。 我有点不清楚这里发生了什么。 我怎么知道幕后发生了什么? 我所知道的是,如果您采用两个值并使用太空船操作员/一般比较运算符: 2 1 => 1 1 2 => -1 1 1 =>0 有时候,似乎Ruby有很多低级别的东西正在进行中我无法在高级别上看到我正在编程。这看起来很自然……但是这种情况似乎特别从较低级别的内容中删除了排序方法。 排序如何使用太空船运营商? 为什么以我们允许的方式重新定义太空船操作员现在可以对物体进行排序?