Есть ли способ иметь динамический тип среза в Go? - PullRequest
0 голосов
/ 05 октября 2019

У меня есть стандартный ответ, встроенный в PHP для микросервисов, который я хочу воспроизвести в Go. В частности, элемент «data» массива ответов может иметь что угодно.

Пример

$response['data'] = [];
$response['data']['entities'] = [ objects that implements toArray() ]
$response['data']['quantity'] = 1

Проблема в том, что данные отличаются для каждой конечной точки.

Так что один вариант IЯ думал, что в каждой конечной точке (контроллере, действии и т. д.) объявляется структура данных, которую я буду использовать в структуре StandardResponse.Data.

Но как мне этого добиться? Используя интерфейсы?

Извините, я новичок в Go.

1 Ответ

1 голос
/ 05 октября 2019

interface{} - это один из способов сделать это. Примерно так:

type StandardResponse struct {
   Error    bool
   ErrorMsg string
   Data     interface{}
}

Маршалинг этого в JSON будет работать при условии, что базовый тип interface{} его поддерживает.

...