鉴于我有一些结构:
julia> struct Car
wheels::Int64
engine::Int64
model::String
end
Run Code Online (Sandbox Code Playgroud)
有没有办法创建一个新的结构并继承上面Car定义的属性(类似于面向对象编程中的类继承)?
实现这种行为的最佳方法是从函数访问结构成员而不是直接访问字段,并且只对结构使用组合。
然后就可以使用转发宏了。例如:
using ReusePatterns
struct Car
wheels::Int64
engine::Int64
model::String
end
wheels(c::Car) = c.wheels
engine(c::Car) = c.engine
model(c::Car) = c.model
struct DoorCar
car::Car
doors::Int64
end
@forward (DoorCar, :car) Car
Run Code Online (Sandbox Code Playgroud)