Я не могу понять, как инициализировать вложенную структуру. Пример можно найти здесь: http://play.golang.org/p/NL6VXdHrjh
package main
type Configuration struct {
Val string
Proxy struct {
Address string
Port string
}
}
func main() {
c := &Configuration{
Val: "test",
Proxy: {
Address: "addr",
Port: "80",
},
}
}
Ответы:
Ну, а какая конкретная причина не делать Proxy своей собственной структурой?
В любом случае у вас есть 2 варианта:
Правильный способ, просто переместите прокси в его собственную структуру, например:
Менее правильный и уродливый способ, но все же работает:
источник
Если вы не хотите использовать отдельное определение структуры для вложенной структуры и вам не нравится второй метод, предложенный @OneOfOne, вы можете использовать этот третий метод:
Вы можете проверить это здесь: https://play.golang.org/p/WoSYCxzCF2
источник
c.Proxy.Address = `127.0.0.1`
c.Proxy.Port = `8080`
это. Есть ли способ инициализировать эти значения во время&Configuration{}
присваивания?Proxy
как свою собственную структуру, см. Первый метод в ответе @OneOfOneОпределите свою
Proxy
структуру отдельно, за пределамиConfiguration
, например:См. Http://play.golang.org/p/7PELCVsQIc
источник
P Proxy
это массив?У вас также есть такая возможность:
источник
Proxy
это массив?Одна проблема возникает, когда вы хотите создать экземпляр общедоступного типа, определенного во внешнем пакете, и этот тип включает в себя другие частные типы.
Пример:
Как создать экземпляр
Duck
в своей собственной программе? Вот лучшее, что я мог придумать:источник
cannot refer to unexported field or method
ошибкой.Вы также можете выделить, используя
new
и инициализировать все поля вручнуюСмотрите на детской площадке: https://play.golang.org/p/sFH_-HawO_M
источник
Вы можете определить структуру и создать ее объект в другой структуре, как я сделал ниже:
Надеюсь, это вам помогло :)
источник
Вам нужно переопределить безымянную структуру во время
&Configuration{}
https://play.golang.org/p/Fv5QYylFGAY
источник