Тест
Вопрос 4
Можно ли через `reflect` записать экспортированное поле структуры, если `reflect.Value` получен из указателя `*T` и поле адресуемо?
Go
package main
import (
"fmt"
"reflect"
)
type S struct{ N int }
func main() {
x := &S{N: 1}
v := reflect.ValueOf(x).Elem()
f := v.FieldByName("N")
fmt.Println(f.CanSet())
}
`Elem()` для указателя на структуру даёт отражённое значение структуры. Поле через `FieldByName` изменяемо (`settable`), если значение получено из адресуемого объекта — тогда безопасно вызывать `Set*`; иначе будет паника.