При определении пустого среза (slice) предпочтительней использовать
var t []string
вместо
t := []string{}
В первом случае объявляется нулевое значение среза (nil срез), в то время как во втором определяется не нулевое значение среза, но срез нулевой длины. Они функционально эквивалентны - их len и cap равны нулю, но nil срез является предпочтительным стилем.
Обратите внимание, что существуют ограниченные обстоятельства, когда предпочтителен срез не nil, а нулевой длины, например, при кодировании объектов JSON (нулевой срез кодируется в nil, а []string{}
кодируется в массив JSON []
).
При разработке интерфейсов не делайте различий между нулевым срезом и ненулевым срезом нулевой длины, поскольку это может привести к нектоорым ошибкам при программировании.
Читайте также:
Комментариев нет:
Отправить комментарий