Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Trong Golang, bạn có thể định nghĩa các hàm như các trường trong một cấu trúc (struct). Tính năng này cho phép bạn liên kết hành vi (phương thức) trực tiếp với các kiểu dữ liệu, cho phép quản lý dữ liệu và các hoạt động liên quan theo cách có tổ chức và đóng gói hơn.
Ví dụ:
package main import "fmt" // Định nghĩa một cấu trúc chưa hàm làm trương type Person struct { Name string Greet func() string } func main() { person := Person{ Name: "A", } // Gán một chức năng cho trường Chào hỏi sau khi người được xác định person.Greet = func() string { return "Hello, " + person.Name } // Gọi trường hàm fmt.Println(person.Greet()) }
Cú pháp của hàm dưới dạng trường trong Golang
type StructName struct { Field1 FieldType FunctionField func() ReturnType }
Bạn cũng có thể định nghĩa một struct method hoạt động như một trường hàm. Điều này cho phép struct có hành vi được liên kết trực tiếp với nó.
Cú pháp
type StructName struct { Field1 FieldType MethodField func() ReturnType }
Ví dụ:
package main import "fmt" type Person struct { Name string Greet func() string } func main() { person := Person{ Name: "A", } // Gán chức năng chào hỏi sau khi người đó được xác định person.Greet = func() string { return "Hello, " + person.Name } // Gọi trường hàm fmt.Println(person.Greet()) }
Kết quả:
Hello, A
Bạn có thể định nghĩa một trường hàm chấp nhận tham số, cung cấp tính linh hoạt hơn trong cách hàm hoạt động.
Cú pháp
type StructName struct { Field1 FieldType MethodField func(param1 ParamType) ReturnType }
Ví dụ:
package main import "fmt" type Person struct { Name string Greet func(string) string } func main() { person := Person{ Name: "B", } // Gán hàm greet sau khi xác định được người person.Greet = func(greeting string) string { return greeting + ", " + person.Name } // Gọi trường hàm bằng 1 tham số fmt.Println(person.Greet("Hi")) }
Kết quả:
Hi, B
Bạn cũng có thể định nghĩa nhiều trường hàm trong một struct duy nhất để đóng gói nhiều hành vi khác nhau.
Cú pháp
type StructName struct { Field1 FieldType MethodField1 func() ReturnType MethodField2 func(param1 ParamType) ReturnType }
Ví dụ:
package main import "fmt" type Person struct { Name string Greet func(string) string Farewell func() string } func main() { person := Person{ Name: "C", } // Gane hàm greet và farewell sau khi xác định người person.Greet = func(greeting string) string { return greeting + ", " + person.Name } person.Farewell = func() string { return "Goodbye, " + person.Name } // Gọi các trường hàm fmt.Println(person.Greet("Hello")) fmt.Println(person.Farewell()) }
Kết quả:
Hello, C Goodbye, C
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn