суббота, 23 февраля 2019 г.

Go Code Review Comments: копирование

Чтобы избежать неожиданного псевдонима, будьте осторожны при копировании структуры из другого пакета. Например, тип bytes.Buffer содержит []byte срез (slice) и, в качестве оптимизации для небольших строк, небольшой байтовый массив (byte array), к которому может обращаться этот срез. Если вы копируете Buffer, срез в копии может иметь псевдоним (alias) массива в оригинале, вызывая неожиданные эффекты при последующих вызовах методов.

В целом, не копируйте значение типа T, если его методы связаны с типом указателя *T.


Читайте также:


Комментариев нет:

Отправить комментарий