Что означает синтаксис массива функций в go? - PullRequest
0 голосов
/ 19 сентября 2018
var list = []func(*someType) error {
        ...
    }

Я новичок в Go и пытаюсь понять, что означает синтаксис?Возвращает ли функция массив?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

func в ходу типа типа int, string ...

Таким образом, они являются примерным синтаксисом:

var listInt := []int{1,2,3}
var listStr := []string{"1","2","3"}
var listFunc := []func(param anyType) anyType {
    func(param anyType) anyType { ... return new(anyType) },
    func(param anyType) anyType { ... return new(anyType) },
}
0 голосов
/ 19 сентября 2018

Это объявляет и инициализирует переменную list как срез , элементами которой являются функции с сигнатурой func(*someType) error.

Срезы в Go являются удобными механизмами для представления последовательностей данныхконкретный тип.Они имеют тип []T для любого типа элемента T (но помните, что Go не имеет обобщений).Срез определяется только типом элементов, которые он содержит;его длина не является частью определения его типа и может изменяться во время выполнения.(Массивы в Go, напротив, имеют фиксированную длину - их тип [N]T для длины N и тип элемента T).

Под поверхностью срез состоит из массива подложки,длина текущих данных и емкость.Среда выполнения управляет выделением памяти массива для размещения всех данных в срезе.

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