Как обращаться к поле структуры через переменную? Всем здрасьте
Кто знает, как обратиться к полю структуры через перменную?
пример:type Example struct {
field1 string
field2 string
}
func main {
myStruct := Example{field1: "test1", field2: "test1"}
custom_field := "field1"
fmt.Println(myStruct.custom_field)
}
в таком виде конечно код не сработает, но надеюсь основную суть своей проблемы изложил.
Или так вообще лучше не делать?

21 Авг 2019 в 06:26
302 +1
0
Ответы
1

Привет! Для обращения к полю структуры через переменную в Go используйте рефлексию. Вот пример, как это можно сделать:

package main
import (
"fmt"
"reflect"
)
type Example struct {
Field1 string
Field2 string
}
func main() {
myStruct := Example{Field1: "test1", Field2: "test2"}
customField := "Field1"
val := reflect.ValueOf(myStruct)
field := val.FieldByName(customField)
if field.IsValid() {
fmt.Println(field.Interface())
} else {
fmt.Println("Field not found")
}
}

Таким образом, вы можете обратиться к полю структуры через переменную customField с использованием рефлексии. Но обычно такой подход не является типичным для Go, лучше обращаться к полям структуры напрямую. Кроме того, использование рефлексии может сделать ваш код менее эффективным и менее безопасным во время выполнения.

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир