[Go Lang] lập trình golang căn bản - Struct trong golang
Bài đăng này đã không được cập nhật trong 5 năm
Xin chào anh em, chúng ta lại tiếp tục học Golang nào. Ở phần này mình sẽ giới thiệu về Struct trong Golang. Struct được dùng thường xuyên nên một người sử dụng golang chắc chắn sẽ phải nắm chắc phần này.
Struct là gì
Struct là 1 kiểu dữ liệu, nhưng không giống các kiểu dữ liệu nguyên thủy thông thường như int, string... mà struct là kiểu dữ liệu người dùng tự định nghĩa.
Một struct có thể bao gồm nhiều trường có các kiểu dữ liệu khác nhau.
Định nghĩa struct
type Person struct {
FirstName string
LastName string
Age int
}
Để định nghĩa một struct thì chúng ta dùng từ khóa type, từ khóa này để báo cho Go biết là chúng ta định nghĩa một struct
Ở ví dụ trên ta khai báo một struct tên là Person nó có chứa các trường
FirstName kiểu string
LastName kiểu string
Age kiểu int
Định nghĩa struct bên trong struct
Ta có thể định nghĩa 1 struct bên trong struct khác qua đó struct trong golang thể hiện tính kế thừa của ngôn ngữ này
type Person struct {
name string
age int
sex bool
}
type Student struct {
Person
class string
point float
}
Ví dụ trên ta định nghĩa một struct Person có các trường name, age, sex. Và định nghĩa một struct Student có trường Person, class, point.
bên trong student có trường Person là struct nên Student có tất cả các trường nằm trong Person, khi đó Student sẽ có các trường là name, age, sex, slass, point.
Khởi tạo biến struct
Có nhiều cách khởi tạo struct như ví dụ sau
package main
import (
"fmt"
)
// Defining a struct type
type Person struct {
FirstName string
LastName string
Age int
}
func main() {
var p Person //khai báo p có kiểu dữ liệu là Person, các trường của biến p sẽ có kiểu dữ liệu mặc định là 0 với int, 0.0 với float, "" với string
p.LastName ="Nguyễn"
p.FirstName = "Thịnh"
fmt.Println("Person :", p)
p1 := Person{"A", "Nuyễn Văn", 26} //khai báo p1 có kiểu dữ liệu là Person, các trường có giá trị theo thứ tự khai báo
fmt.Println("Person1: ", p1)
p2 := Person{
FirstName: "John",
LastName: "Snow",
Age: 45,
} //khai báo p2 có kiểu dữ liệu là Person, các trường có giá trị được truyền theo key.
fmt.Println("Person2: ", p2)
p3 := Person{FirstName: "Robert"} //khai báo p3 có kiểu dữ liệu là Person, các trường FirstName có giá trị "Robert" các trường khác mang giá trị mặc định
fmt.Println("Person3: ", p3)
}
Truy xuất đến các trường trong struct
Ta có thể thao tác đến các trường trong struct qua dấu chấm '.'
var p Person
p.LastName ="Nguyễn"
p.FirstName = "Thịnh"
fmt.Println("LastName :", p.LastName)
fmt.Println("FirstName :", p.FirstName)
Kết bài
Qua bài này chúng ta đã hiểu kỹ hơn về struct và cách sử dụng chúng, cảm ơn các bạn đã theo dõi.
tài liệu tham khảo
All rights reserved