Trong Go, struct
(cấu trúc) là một kiểu dữ liệu cho phép bạn nhóm nhiều trường (fields) lại với nhau, có thể là các kiểu dữ liệu khác nhau. Việc khởi tạo một struct
có thể được thực hiện bằng nhiều cách khác nhau, tùy thuộc vào nhu cầu của bạn. Dưới đây là hướng dẫn chi tiết về cách khởi tạo một struct
trong Go.
Trước khi khởi tạo, bạn cần định nghĩa một struct
. Dưới đây là cú pháp để định nghĩa một struct
:
type Person struct { Name string Age int Address string }
Trong ví dụ này, Person
là một struct
với ba trường: Name
, Age
, và Address
.
Bạn có thể khởi tạo một struct
bằng cách tạo một biến của kiểu struct
và gán giá trị cho các trường.
func main() { // Khởi tạo một struct bằng cách khai báo trực tiếp person1 := Person{ Name: "John Doe", Age: 30, Address: "123 Main St", } fmt.Println(person1) }
new
Sử dụng từ khóa new
để khởi tạo một struct
cũng là một cách phổ biến. Cách này trả về một con trỏ đến struct
đã khởi tạo.
func main() { // Sử dụng new để khởi tạo một struct person2 := new(Person) person2.Name = "Jane Doe" person2.Age = 25 person2.Address = "456 Park Ave" fmt.Println(*person2) // Giải dereference để lấy giá trị }
Khi bạn khởi tạo một struct
, nếu không gán giá trị cho một trường nào đó, trường đó sẽ được gán giá trị mặc định tương ứng với kiểu dữ liệu của nó (0 cho int, “” cho string, nil cho các kiểu tham chiếu).
func main() { // Khởi tạo struct mà không gán giá trị cho tất cả các trường person3 := Person{} fmt.Println(person3) // Kết quả: { 0 } }
Bạn cũng có thể khởi tạo một struct
và gán cho nó một con trỏ.
func main() { // Khởi tạo một struct và gán cho con trỏ person4 := &Person{ Name: "Alice", Age: 28, Address: "789 Elm St", } fmt.Println(*person4) // Giải dereference để lấy giá trị }
Bạn có thể lồng struct
vào trong các struct
khác để tạo ra cấu trúc phức tạp hơn.
type Company struct { Name string Address string Owner Person // Lồng struct Person vào struct Company } func main() { owner := Person{Name: "Bob", Age: 40, Address: "321 Oak St"} company := Company{Name: "Tech Corp", Address: "987 Business Rd", Owner: owner} fmt.Println(company) }
Việc khởi tạo một struct
trong Go rất linh hoạt và có thể được thực hiện qua nhiều cách khác nhau. Bạn có thể khởi tạo trực tiếp, sử dụng từ khóa new
, hay thậm chí là thông qua con trỏ. Struct
là một phần quan trọng trong lập trình Go, giúp bạn tổ chức và quản lý dữ liệu một cách hiệu quả. Việc hiểu rõ cách khởi tạo và sử dụng struct
sẽ giúp bạn xây dựng các ứng dụng Go phức tạp hơn một cách dễ dàng.