﻿# V8041\. Modifying a field of a value receiver will have no effect\. Consider using a pointer receiver\.

Анализатор обнаружил метод, который изменяет поле получателя, передаваемого по значению\. Такие изменения затрагивают только копию структуры и не оказывают никакого влияния на исходный объект\.

Рассмотрим пример:

```cpp
type Buffer struct {
  data []byte
}

func (b Buffer) Append(value byte) {
  b.data = append(b.data, value)
}
```

Метод `Append` объявлен с получателем `Buffer`, который передаётся по значению\. При каждом вызове метода будет создана копия объекта, поэтому выражение `b.data = append(b.data, value)` только изменяет поле этой копии\. После завершения работы метода исходный объект остаётся неизменным\.

Если метод должен изменять объект, следует использовать получатель\-указатель:

```cpp
func (b *Buffer) Append(value byte) {
  b.data = append(b.data, value)
}
```