package main import ( "fmt" "reflect" ) func main() { i := "Hello, World!" v := reflect.ValueOf(&i).Elem() v.SetString("Goodbye, World!") fmt.Println(i) }
package main import ( "fmt" "reflect" ) type person struct { name string age int } func main() { p := person{name: "Alice", age: 30} v := reflect.ValueOf(&p).Elem() v.FieldByName("name").SetString("Bob") fmt.Println(p) }In this example, we create a struct type `person`, with fields `name` and `age`. We create a `person` instance `p`, and obtain a reflect.Value object from it using the ValueOf function. We then take the address of `p`, and get a pointer Value object from it using the Elem method. Finally, we call the FieldByName method on the pointer Value object, passing in the name of the field we want to modify (in this case, "name"), and then call the SetString method to set the string value of the field to "Bob". The output of this program would be "{Bob 30}".