相关疑难解决方法(0)

从no-op中删除一个修改过的对象?

请参阅下面的示例

require "set"
s = [[1, 2], [3, 4]].to_set # s = {[1, 2], [3, 4]}
m = s.max_by {|a| a[0]} # m = [3, 4]
m[0] = 9 # m = [9, 4], s = {[1, 2], [9, 4]}
s.delete(m) # s = {[1, 2], [9, 4]} ?????
Run Code Online (Sandbox Code Playgroud)

这与阵列的行为不同.(如果我们删除.to_set,我们会得到s = [[1, 2]]预期的.)这是一个错误吗?

ruby set

4
推荐指数
1
解决办法
127
查看次数

红宝石数组中的唯一对象

该程序应该只生产唯一的飞机,它重复元素数组。uniq方法无济于事。

class Airplane

    attr_accessor :model        

    def initialize(model) 
        @model = model
    end
end

models  =   [ "Boeing 777-300ER",
              "Boeing 737-800",
              "Airbus ?330-200", 
              "Airbus ?330-300",
              "Airbus ?321",
              "Airbus A320",
              "Sukhoi SuperJet 100"]
planes = []

150.times do

    model = models[rand(0..6)]
    plane = Airplane.new(model)

    planes << plane 
Run Code Online (Sandbox Code Playgroud)

在这里尝试#飞机= planes.uniq没有帮助

    break if models.length == planes.length
end

# result
planes.uniq.each do |plane|   # <<<< uniq doesn't help
    puts "Model: #{plane.model}"
end
Run Code Online (Sandbox Code Playgroud)

ruby

1
推荐指数
1
解决办法
59
查看次数

标签 统计

ruby ×2

set ×1