Как обращаться к поле структуры через переменную? Всем здрасьте Кто знает, как обратиться к полю структуры через перменную? пример:type Example struct { field1 string field2 string } func main { myStruct := Example{field1: "test1", field2: "test1"} custom_field := "field1" fmt.Println(myStruct.custom_field) } в таком виде конечно код не сработает, но надеюсь основную суть своей проблемы изложил. Или так вообще лучше не делать?
Привет! Для обращения к полю структуры через переменную в 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, лучше обращаться к полям структуры напрямую. Кроме того, использование рефлексии может сделать ваш код менее эффективным и менее безопасным во время выполнения.
Привет! Для обращения к полю структуры через переменную в Go используйте рефлексию. Вот пример, как это можно сделать:
package mainimport (
"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, лучше обращаться к полям структуры напрямую. Кроме того, использование рефлексии может сделать ваш код менее эффективным и менее безопасным во время выполнения.