как получить слайс полей из слайса структур
package main
import (
"fmt"
"reflect"
)
type Car struct {
Engine string
Window string
Wheel string
}
func Main(){
Cars :=[]Car {{"asd","asdf","gds"},{"asd","qwf","vgd"}}
fmt.Println(Cars[].Engine)
}
Ответы (1 шт):
Автор решения: Pak Uula
→ Ссылка
Нет, это так не работает. Нужно вручную собирать значения.
package main
import (
"fmt"
)
type Car struct {
Engine string
Window string
Wheel string
}
func main() {
cars := []Car{{"asd", "asdf", "gds"}, {"asd", "qwf", "vgd"}}
engines := make([]string, len(cars))
for i := range cars {
engines[i] = cars[i].Engine
}
fmt.Println(engines)
}
Присваивание engines := make([]string, len(cars)) создаёт срез строк той же длины, что и массив автомобилей. В цикле копируем в него значения из массива автомобилей
for i := range cars {
engines[i] = cars[i].Engine
}