Во-первых, у вас ошибка в коде. Пока вы не создали другой тип, определенный как String
, вы должны исправить его на string
.
Затем в Go вы можете использовать составные структуры, что означает, что вы можете напрямую обращаться к полю структуры, включенному в другую структуру, как вы уже делали.
Это означает, что вы можете вызвать метод для получателя метода, в котором объявлены поля структуры. Чтобы исправить ваш пример, если я правильно понимаю ваш вопрос:
package main
import (
"fmt"
)
type A struct {
Number int
}
type B struct{
A
name string
}
func main() {
b := &B{A{1}, "George"}
b.GetValues()
}
func (b B) GetValues() {
fmt.Println(b.Number)
fmt.Println(b.name)
}
В приведенном ниже примере, поскольку struct A
включено в struct B
, это означает, что вы можете вызвать поле структуры, объявленное в struct A
, в методе GetValues. Это связано с тем, что struct B
наследует поля struct A
.
https://play.golang.org/p/B-XJc6jddE
person
Endre Simo
schedule
13.05.2016