Объявление разных типов переменных в Голанге - PullRequest
0 голосов
/ 18 мая 2018

Привет, я только изучаю Go с последних дней просмотра, прочитал несколько документов и заметил, что это что-то вроде определения структуры или интерфейса.Все еще не могу получить разницу между

var result []Struct

и

result := Struct{} 

Есть ли конкретные документы, на которые я могу сослаться?

1 Ответ

0 голосов
/ 18 мая 2018

result в первом примере - это нулевой срез.Спецификация говорит, что переменные инициализируются своими нулевыми значениями и что нулевое значение среза равно nil .

result во втором примере - это Struct значение.Он использует краткое объявление переменной и составной литерал значение для Struct.Второй пример идентичен

var result Struct

Возможно, вы хотели написать

result := []Struct{} 

для второго примера.Это срез не нулевой длины.Выражение []Struct{} является составным литералом для пустого фрагмента Struct.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...