Описание тега composite-literals

Составные литералы - это способ объявления и распределения ресурсов в языке программирования Go.
1 ответ

Составной литерал и поля встроенного типа

Я работал над примером программы, чтобы ответить на другой вопрос здесь, на SO, и был несколько озадачен тем фактом, что следующий код не будет компилироваться; https://play.golang.org/p/wxBGcgfs1o package main import "fmt" type A struct { FName str…
30 апр '15 в 22:45
3 ответа

Расширение карты из других пакетов во время компиляции

Я пытаюсь расширить карту по пакетам во время компиляции. Это возможно? У меня есть посылка A с предопределенной картой: package A var MyMap = map[string]string{"key1": "value", "key2": "value"} И я хотел бы расширить карту во время "компиляции". Эт…
04 фев '19 в 21:53
2 ответа

Как буквально инициализировать многоуровневые вложенные структуры в GO?

Я пытаюсь буквально инициализировать следующую структуру в GO: Это структура: type tokenRequest struct { auth struct { identity struct { methods []string password struct { user struct { name string domain struct { id string } password string } } } }…
10 янв '19 в 09:51
3 ответа

Могу ли я связать один элемент класса с другим при инициализации в одной строке?

У меня есть класс (структура), как это: type Question struct{ Question string answerOne string answerTwo string answerCorrect string } И я инициализирую это так: q1:=Question{ Question:"What?", answerOne:"A", answerTwo:"B", answerCorrect: ? //I want…
08 дек '17 в 09:13
7 ответов

Предотвратить пропущенные поля в инициализации структуры

Рассмотрим этот пример. Допустим, у меня есть этот объект, который вездесущ в моей кодовой базе: type Person struct { Name string Age int [some other fields] } Где-то глубоко в базе кода, у меня также есть некоторый код, который создает новый Person…
05 фев '19 в 18:15
1 ответ

Анонимная структура, разница между структурой {}{} и {}

Я имею string в struct Карта в Голанге определяется следующим образом: var Foo = map[string]struct{}{ "foo": struct{}{}, } Gogland по умолчанию помечает это объявление как предупреждение, говоря "Избыточное объявление типа". var Foo = map[string]str…
12 окт '17 в 10:21
1 ответ

Что делает инициализация структуры Go в скобках?

Обычно я инициализирую такую ​​структуру: item1 := Item{1, "Foo"} Однако недавно я видел код, инициализирующийся паренами: item2 := (Item{2, "Bar"}) reflect возвращает то же самое Item название. Что делает инициализация в скобках и когда это предпоч…
13 июн '18 в 06:23
1 ответ

Вставьте в мой тип другой pkg и инициализируйте его буквально

Я прочитал, как инициализировать тип встраивания и связанные с ним вопросы и ответы. В чем проблема при компиляции этого кода, я получил: [Ошибка] неизвестное поле 'feature.DefaultSshHelper' в структурном литерале типа dala02 type FDH feature.Defaul…
13 дек '17 в 07:18
1 ответ

Структурировать для инициализатора цикла

Любая идея, почему это выражение структуры в для инициализатора цикла делает синтаксическую ошибку во время компиляции? Указатель на структуру отлично работает в этом случае, но, конечно, мне нужна локальная переменная, как показано ниже. Спасибо за…
31 янв '16 в 23:16
2 ответа

Golang struct литерал синтаксиса с неэкспортированными полями

У меня есть длинная структура, которую я до сих пор создавал с синтаксисом struct literal, например: Thing{ "the name", ... } Я только что добавил неэкспортированное поле Thing структура и теперь Go жалуется: implicit assignment of unexported field …
20 июл '17 в 11:26
2 ответа

Golang встроенный тип структуры

У меня есть эти типы: type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error } Я могу использовать использование v := NamedValue{Name: "fine", Value: 33}, но я не умею пользоваться e…
19 июл '17 в 11:46
3 ответа

Идите структурировать литералы, почему этот адрес адресуемый?

Я читаю книгу "Язык программирования Go". Это очень хорошо для нас (скорее) опытных программистов и объясняет различия между пересечениями других языков - но я нашел случай, который я не до конца понимаю. Я знаю C++ достаточно хорошо, и я понимаю, ч…
2 ответа

Перейти к сборке с ошибкой буфера протокола: слишком мало значений в struct initializer

У меня есть файл прото: syntax = "proto3"; package main; message Client { int32 Id = 1; string Name = 2; string Email = 3; } Скомпилированный Client структура, как показано ниже: type Client struct { Id int32 `protobuf:"varint,1,opt,name=Id,proto3" …
08 авг '18 в 08:41
1 ответ

Как исправить "отсутствующий тип в составном литерале" в тестовых примерах

Я пытаюсь написать тестовый код для функции ReadField(), но у меня возникают трудности при определении тестовых случаев. Выдает ошибку "отсутствует тип в составном литерале". Я считаю, что это просто какая-то синтаксическая ошибка. Я попытался опред…
05 апр '19 в 05:15
1 ответ

Могу ли я добавить элементы в срез в операторе создания в зависимости от условия?

У меня есть функция, которая создает срез, как это: func buildOptions(cfg *ServerConfig) []SomeType { return []SomeType{ Option1, Option2, Option3, } } Мне нужно, чтобы Option3 был добавлен в срез, только если соблюдено определенное условие. Может л…
20 июн '19 в 12:16
2 ответа

Как объявить поля json, допускающие значение NULL, в структурах golang?

Обычно мне нравится использовать указатели для примитивных типов данных в своих структурах, чтобы при их json.Marshal nil поля всегда переводятся на "field": nullв строке json. Но это затруднит создание нового экземпляра структуры, поскольку я не мо…
05 фев '20 в 15:23
3 ответа

Голанг, что делает следующее []

Я новичок в golang, и у меня есть основной вопрос. У меня есть следующий код, взятый из примера из Интернета func (d Direction) String() string { return [...]string{"North", "East", "South", "West"}[d] } Я не понимаю, что значит [d] делать в теле ме…
20 мар '20 в 00:07
3 ответа

Срез поведения структур

Когда мы объявляем срез структур, но устанавливаем тип данных как указатель на структуру, происходит ли автоматическое преобразование литералов в указатели? type book struct { id int name string } var books = []*book { {1, "Yellow moon"}, // --->…
28 дек '19 в 10:30
2 ответа

Понимание составного литерала go

Почему присвоение значения функции f не является составным литералом? Спецификация Go lang Составные литералы говорят ниже, следовательно, значение функции не может быть построено с помощью составного литерала. Составные литералы создают значения дл…
26 апр '20 в 14:34
1 ответ

Выделяет ли golang новую память при переназначении новой структуры переменной?

Когда я переназначаю новый объект структуры существующей переменной, адрес не меняется. Код показан ниже: type Request struct { Field string } func main(){ r := Request{Field: "a"} fmt.Printf("%p\n", &r) r = Request{Field: "b"} fmt.Printf("%p\n"…
27 май '20 в 12:16