"Truck" Van.class.name # => "Van" Car/Tru-6ren">
gpt4 book ai didi

Ruby类继承问题

转载 作者:数据小太阳 更新时间:2023-10-29 07:54:52 27 4
gpt4 key购买 nike

我试图得到这个结果:

Car.class.name # => "Car"
Truck.class.name # => "Truck"
Van.class.name # => "Van"
Car/Truck/Van.superclass.name # => "Vehicle"

我这样做了:

require "rspec/autorun"

class Vehicle
end

class Car < Vehicle
end

class Van < Vehicle
end

class Truck < Vehicle
end

describe Car do
describe ".class.name" do
it "returns name of the class" do
expect(Car.class.name).to eq "Car"
end
end
end

为了实现这个,我对 Ruby 的类系统缺少什么?

最佳答案

你的直觉很好。从表面上看,挑战似乎是不正确的,如果它是“一个相对简单的代码挑战”,那么我认为情况一定如此。

另一方面,如果挑战是棘手的,指定的结果在 Ruby 中肯定可能:

class Vehicle
def self.class
self
end
end

class Car < Vehicle; end
class Van < Vehicle; end
class Truck < Vehicle; end

p Car.class.name # => "Car"
p Truck.class.name # => "Truck"
p Van.class.name # => "Van"
p Car.superclass.name # => "Vehicle"

在 repl.it 上试试:https://repl.it/@jrunning/VisibleMustyHapuka

但是,由于对挑战或其来源一无所知,因此无法确定这是否是预期的解决方案。

关于Ruby类继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48286721/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com