РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1513 of 1593 menu

Метод reflect.Value.SetString

Метод reflect.Value.SetString устанавливает новое строковое значение для переменной, представленной объектом reflect.Value. Метод принимает один параметр - строку, которая будет установлена. Важно понимать, что метод работает только с изменяемыми значениями (полями структур, элементами слайсов, переменными, переданными по ссылке). При попытке установить значение для неизменяемого объекта возникает паника.

Синтаксис

value.SetString(s string)

Пример

Давайте установим новое строковое значение для переменной, используя отражение:

package main import ( "fmt" "reflect" ) func main() { var str string = "old value" val := reflect.ValueOf(&str).Elem() if val.CanSet() { val.SetString("new value") } fmt.Println(str) }

Результат выполнения кода:

"new value"

Пример

Давайте изменим значение строкового поля структуры через отражение:

package main import ( "fmt" "reflect" ) type Person struct { Name string Age int } func main() { p := Person{Name: "Alice", Age: 25} val := reflect.ValueOf(&p).Elem() nameField := val.FieldByName("Name") if nameField.CanSet() { nameField.SetString("Bob") } fmt.Println(p.Name) }

Результат выполнения кода:

"Bob"

Пример

Попытка установить значение для неизменяемого объекта приводит к панике. Всегда проверяйте доступность изменения через метод CanSet:

package main import ( "fmt" "reflect" ) func main() { var str string = "hello" val := reflect.ValueOf(str) fmt.Println("Can set:", val.CanSet()) // Если раскомментировать следующую строку, возникнет паника // val.SetString("world") }

Результат выполнения кода:

"Can set: false"

Смотрите также

  • метод reflect.Value.Set,
    который устанавливает значение любого типа
  • метод reflect.Value.SetInt,
    который устанавливает целочисленное значение
  • метод reflect.Value.SetBool,
    который устанавливает булево значение
  • метод reflect.Value.CanSet,
    который проверяет возможность изменения значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить