dtelenkov hace 1 semana
padre
commit
0476728b2d

+ 32 - 0
courses/golang_web/data_type/1/method.go

@@ -0,0 +1,32 @@
+package main
+
+import "fmt"
+
+type NewPerson struct {
+	Id   int
+	Name string
+}
+
+type NewAccount struct {
+	Id   int
+	Name string
+	NewPerson
+}
+
+// не изменит оригинальной структуры для которй вызнва
+func (p NewPerson) UpdateName(name string) {
+	p.Name = name
+}
+
+// изменит ориганальную структуру
+func (p *NewPerson) SetName(name string) {
+	p.Name = name
+}
+
+func main() {
+	pers := NewPerson{1, "Vasily"}
+	fmt.Printf("updated person: %#v\n", pers)
+	pers.SetName("Vasily Romanov")
+	fmt.Printf("updated person: %#v\n", pers)
+
+}

+ 38 - 0
courses/golang_web/data_type/1/struct.go

@@ -0,0 +1,38 @@
+package main
+
+import "fmt"
+
+type Person struct {
+	Id		int
+	Name	string
+	Address	string
+}
+
+type Account struct {
+	Id		int
+	Name	string
+	Cleaner func(string) string
+	Owner	Person
+	Person
+}
+
+func main() {
+	// полное объявление структуры
+	var acc Account = Account {
+		Id:		1,
+		Name:	"rvasily",
+		Person:	Person{
+			Name:	"Высилий",
+			Address: "Москва",
+		},
+	}
+	fmt.Printf("%#v\n", acc)
+
+	// короткое объявление структуры
+	acc.Owner = Person{2, "Romanov Vasily", "Moscow"}
+
+	fmt.Printf("%#v\n", acc)
+
+	fmt.Println(acc.Name)
+	fmt.Println(acc.Person.Name)
+}