Rate this post

Trong Go, struct có thể được sử dụng để tạo các kiểu do người dùng xác định.

Cấu trúc là một kiểu kết hợp có nghĩa là nó có thể có các thuộc tính khác nhau và mỗi thuộc tính có thể có kiểu và giá trị riêng của chúng.

Các bài viết liên quan:

Struct có thể đại diện cho thực thể trong thế giới thực với các thuộc tính này. Chúng tôi có thể truy cập dữ liệu thuộc tính như một thực thể duy nhất. Nó cũng là các kiểu có giá trị và có thể được xây dựng bằng hàm new ().

Khái niệm về Struct trong Golang

Trong ngôn ngữ lập trình Go (Golang), Struct là một cấu trúc dữ liệu phức tạp được sử dụng để định nghĩa một tập hợp các trường dữ liệu có liên quan. Struct cho phép bạn tổ chức dữ liệu một cách logic và có thể lưu trữ các loại dữ liệu khác nhau trong cùng một đối tượng.

Một Struct trong Golang tương tự như một lớp (class) trong các ngôn ngữ khác. Nó chứa một tập hợp các trường dữ liệu và có thể chứa các phương thức để thực hiện các hoạt động liên quan đến dữ liệu đó.

Để khai báo một Struct trong Golang, ta sử dụng từ khóa “type” theo sau là tên của Struct và danh sách các trường dữ liệu bên trong ngoặc nhọn. Ví dụ:

type Person struct {
    Name   string
    Age    int
    Email  string
}

Trong ví dụ trên, ta đã định nghĩa một Struct có tên là “Person” với các trường dữ liệu bao gồm “Name” kiểu string, “Age” kiểu int, và “Email” kiểu string.

Sau khi đã khai báo một Struct, ta có thể tạo đối tượng (thể hiện) của Struct đó bằng cách khởi tạo và gán giá trị cho các trường dữ liệu của nó.

Struct trong Golang mang lại nhiều ưu điểm như cho phép bạn tổ chức dữ liệu theo cách logic, tạo ra các đối tượng có tính chất đóng gói dữ liệu, và cung cấp khả năng kết hợp các trường dữ liệu khác nhau trong một đối tượng duy nhất.

Struct là một phần quan trọng của ngôn ngữ Golang và được sử dụng rộng rãi trong việc xây dựng các ứng dụng và hệ thống phức tạp.

Xem thêm Struct trong Swift

Cú pháp khai báo Struct

Cú pháp khai báo một Struct trong Golang như sau:

type TênStruct struct {
    Trường1 kiểuDữLiệu1
    Trường2 kiểuDữLiệu2
    // ...
}

Trong đó:

  • TênStruct là tên của Struct.
  • Trường1, Trường2, … là tên của các trường dữ liệu (fields) trong Struct.
  • kiểuDữLiệu1, kiểuDữLiệu2, … là kiểu dữ liệu tương ứng của từng trường.

Ví dụ, để khai báo một Struct tên là “Person” với các trường dữ liệu là “Name” kiểu string và “Age” kiểu int, chúng ta sẽ sử dụng cú pháp như sau:

type Person struct {
    Name string
    Age  int
}

Sau khi khai báo, chúng ta có thể tạo ra các đối tượng (instances) của Struct “Person” và gán giá trị cho các trường dữ liệu bằng cách sử dụng dấu chấm “.” để truy cập vào từng trường. Ví dụ:

person := Person{
    Name: "John",
    Age:  25,
}

Trong ví dụ trên, chúng ta đã tạo một đối tượng “person” thuộc kiểu Struct “Person” và gán giá trị “John” cho trường “Name” và giá trị 25 cho trường “Age”.

Xem thêm struct trong c++ là gì ?

Khởi tạo và gán giá trị cho Struct

Để khởi tạo và gán giá trị cho một đối tượng Struct trong Golang, bạn có thể sử dụng cú pháp gán giá trị trực tiếp hoặc sử dụng từ khóa “new”.

  1. Gán giá trị trực tiếp:

Bạn có thể khởi tạo và gán giá trị cho một đối tượng Struct bằng cách chỉ định giá trị cho từng trường dữ liệu theo thứ tự của chúng.

Ví dụ:

type Person struct {
  Name string
  Age int } 
func main() { 
  person := Person{ Name: "John", Age: 25, } 
  fmt.Println(person.Name) // Kết quả: John 
  fmt.Println(person.Age) // Kết quả: 25 
}
  1. Sử dụng từ khóa “new”:

Bạn cũng có thể sử dụng từ khóa “new” để khởi tạo một đối tượng Struct và sau đó gán giá trị cho các trường dữ liệu của nó.

Ví dụ:

type Person struct { 
  Name string 
  Age int 
} 
func main() { 
  person := new(Person) 
  person.Name = "John" 
  person.Age = 25 
  fmt.Println(person.Name) // Kết quả: John 
  fmt.Println(person.Age) // Kết quả: 25 
}

Trong cả hai cách trên, chúng ta đã tạo ra một đối tượng “person” thuộc kiểu Struct “Person” và gán giá trị cho các trường dữ liệu “Name” và “Age”. Bạn có thể truy cập và sử dụng các trường dữ liệu của đối tượng bằng cách sử dụng dấu chấm “.”.

Xem thêm Các lệnh điều khiển trong GOLang

Truy cập vào trường dữ liệu trong Struct

Để truy cập vào trường dữ liệu trong một đối tượng Struct trong Golang, bạn sử dụng dấu chấm “.” sau tên biến đối tượng, sau đó là tên trường dữ liệu.

Ví dụ, giả sử bạn có một đối tượng Struct “Person” với các trường dữ liệu “Name” và “Age”:

type Person struct {
    Name string
    Age  int
}

Bạn có thể truy cập và sử dụng giá trị của các trường dữ liệu như sau:

func main() {
    person := Person{
        Name: "John",
        Age:  25,
    }

    fmt.Println(person.Name) // Truy cập vào trường dữ liệu "Name", kết quả: John
    fmt.Println(person.Age)  // Truy cập vào trường dữ liệu "Age", kết quả: 25

    // Gán giá trị mới cho trường dữ liệu "Name"
    person.Name = "Jane"
    fmt.Println(person.Name) // Kết quả: Jane
}

Chúng ta sử dụng dấu chấm “.” để truy cập vào trường dữ liệu của đối tượng “person”. Ví dụ: person.Name để truy cập vào trường dữ liệu “Name” của đối tượng “person” và person.Age để truy cập vào trường dữ liệu “Age”. Bạn có thể đọc và gán giá trị cho các trường dữ liệu như bất kỳ biến thông thường nào trong Golang.

Xem thêm Báo lỗi (ERROR) trong Golang

Phương thức trong Struct

Trong Golang, bạn có thể định nghĩa các phương thức cho một Struct bằng cách khai báo các hàm với một tham số là đối tượng Struct và sử dụng nó như một receiver. Điều này cho phép bạn thực hiện các hành động hoặc tính toán trên đối tượng Struct đó.

Ví dụ, giả sử bạn có một đối tượng Struct “Rectangle” đại diện cho một hình chữ nhật, và bạn muốn tính diện tích của nó bằng cách sử dụng một phương thức:

type Rectangle struct {
    Width  float64
    Height float64
}

func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

Trong ví dụ trên, chúng ta định nghĩa một phương thức “Area()” cho Struct “Rectangle”. Đối tượng “Rectangle” được truyền vào phương thức thông qua receiver “r”. Phương thức này tính diện tích của hình chữ nhật bằng cách nhân chiều rộng và chiều cao.

Để sử dụng phương thức trong một đối tượng Struct, bạn gọi phương thức bằng cách sử dụng dấu chấm “.” sau biến đối tượng, sau đó là tên phương thức:

func main() {
    rectangle := Rectangle{
        Width:  10,
        Height: 5,
    }

    area := rectangle.Area()
    fmt.Println(area) // Kết quả: 50
}

Chúng ta gọi phương thức “Area()” trên đối tượng “rectangle” và lưu kết quả vào biến “area”. Kết quả in ra màn hình sẽ là diện tích của hình chữ nhật, trong trường hợp này là 50.

Chúng ta có thể định nghĩa nhiều phương thức cho một Struct và sử dụng chúng để thực hiện các hành động và tính toán trên đối tượng Struct tương ứng.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now