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

Go Code Review Comments: определение пустых срезов

При определении пустого среза (slice) предпочтительней использовать

var t []string

вместо

t := []string{}

В первом случае объявляется нулевое значение среза (nil срез), в то время как во втором определяется не нулевое значение среза, но срез нулевой длины. Они функционально эквивалентны - их len и cap равны нулю, но nil срез является предпочтительным стилем.

Обратите внимание, что существуют ограниченные обстоятельства, когда предпочтителен срез не nil, а нулевой длины, например, при кодировании объектов JSON (нулевой срез кодируется в nil, а []string{} кодируется в массив JSON []).

При разработке интерфейсов не делайте различий между нулевым срезом и ненулевым срезом нулевой длины, поскольку это может привести к нектоорым ошибкам при программировании.


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


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

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