У меня есть интерфейс и структура, реализующая его:
package main
import "fmt"
type Vehicle interface {
GetColor() string
SetColor(color string)
}
type Car struct {
Color string
}
func (car *Car) SetColor(color string) {
car.Color = color
}
func (car *Car) GetColor() string {
return car.Color
}
func NewCar(color string) *Car {
car := new(Car)
car.Color = color
return car
}
func main() {
car := NewCar("red")
vehicles := make([]Vehicle, 0)
vehicleSelection := make([]*Vehicle, 0)
vehicles = append(vehicles, car)
vehicleSelection = append(vehicleSelection, car) //DOES NOT WORK!
for _, vehicle := range vehicleSelection {
vehicle.SetColor("blue") //DOES NOT WORK!
}
for _, vehicle := range vehicles {
fmt.Println(vehicle.GetColor())
}
}
Я хочу иметь подмножество (vehicleSelection
срез) всех моих транспортных средств (vehicles
срез). Все изменения, внесенные в транспортные средства в срезе vehicleSelection
, также должны отражаться транспортными средствами в срезе vehicles
. Поэтому я хочу, чтобы срез vehicleSelection
был срезом указателей. Как я могу добавить cars
к этому срезу?