Các trường được khuyến khích trong Golang

Trong cấu trúc Go, các trường được khuyến khích cũng giống như các trường ẩn danh, kiểu của trường là tên của trường.

Các trường được khuyến khích trong Golang

Chúng ta sử dụng khái niệm này trong cấu trúc lồng nhau, trong đó một cấu trúc là một trường trong một cấu trúc khác, chỉ cần thêm tên của cấu trúc vào một cấu trúc khác và nó hoạt động giống như Trường ẩn danh đối với cấu trúc lồng nhau. Và các trường của cấu trúc đó (khác với cấu trúc lồng nhau) là một phần của cấu trúc lồng nhau, kiểu trường như vậy được gọi là trường được thăng cấp. Nếu cấu trúc ẩn danh hoặc cấu trúc lồng nhau và cấu trúc cha chứa một trường có cùng tên, thì trường đó không được thăng cấp, chỉ những trường có tên khác nhau mới được thăng cấp lên cấu trúc.

Cú pháp:

type x struct{
// Các trường
}

type y struct{
// Các trường của cấu trúc y
x
}

Giờ hãy cùng nhau tìm hiểu kỹ hơn về cách dùng khái niệm trường được khuyến khích trong Golang này qua ví dụ:

Ví dụ:

// Chương trình Go minh họa
// khái niệm các trường được khuyến khích
package main 

import "fmt"

// Cấu trúc
type details struct { 

	// Các trường 
	// cấu trúc chi tiết
	name string 
	age int
	gender string 
} 

// Cấu trúc lồng nhau
type student struct { 
	branch string 
	year int
	details 
} 

func main() { 

	// Khởi tạo các trường của 
	// cấu trúc học sinh
	values := student{ 
		branch: "CSE", 
		year: 2010, 
		details: details{ 
		
			name: "Sumit", 
			age: 28, 
			gender: "Male", 
		}, 
	} 

	// Các trường được khuyến khích của cấu trúc hoc sinh
	fmt.Println("Name: ", values.name) 
	fmt.Println("Age: ", values.age) 
	fmt.Println("Gender: ", values.gender) 

	// Các trường bình thường của
	// cấu trúc học sinh
	fmt.Println("Year: ", values.year) 
	fmt.Println("Branch : ", values.branch) 
} 

Kết quả:

Name:  Sumit
Age:  28
Gender:  Male
Year:  2010
Branch :  CSE

Giải thích chi tiết:

Trong ví dụ trên, chúng ta có hai cấu trúc được đặt tên là details student. Trong đó details structure là cấu trúc bình thường và student structure là cấu trúc lồng nhau chứa details structure dưới dạng các trường trong đó giống như các trường ẩn danh. Bây giờ, các trường của details structure, tức là name, age và gender được thăng cấp lên student structure và được gọi là các trường được thăng cấp. Bây giờ, bạn có thể truy cập trực tiếp vào chúng với sự trợ giúp của student structure như values.name, values.agevalues.gender.

Thứ Hai, 28/04/2025 09:21
51 👨 235
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng