Scroll to top
Các kiểu dữ liệu trong Golang

Các kiểu dữ liệu trong Golang

ByYuto 12/10/2024 01:16
6min read

Tìm hiểu về các kiểu dữ liệu trong ngôn ngữ lập trình Golang. Học cách sử dụng các kiểu số nguyên, số thực, số phức và các phạm vi giá trị của chúng. Tìm hiểu cách sử dụng các kiểu dữ liệu để xử lý dữ liệu trong các ứng dụng Golang.

Trong Golang, có một số kiểu dữ liệu cơ bản mà bạn có thể sử dụng trong chương trình

Kiểu bool

Trong Golang, kiểu bool được sử dụng để lưu trữ giá trị logic (True hoặc False). Nó là một kiểu dữ liệu chỉ có hai giá trị có thể chứa: truefalse.

Ví dụ về cách sử dụng kiểu bool:

go
Copy
1
2
3
4
5
6
7
8
9
10
11
package main

import "fmt"

func main() {
    var myBool bool = true
    fmt.Println(myBool) // in ra true

    myBool = false
    fmt.Println(myBool) // in ra false
}

Kiểu dữ liệu bool có thể được sử dụng với các toán tử logic như and, or, not, ==, !=, v.v ...

go
Copy
1
2
3
4
5
6
7
8
9
10
package main

import "fmt"

func main() {
    var a, b bool = true, false
    fmt.Println(a && b) // in ra false
    fmt.Println(a || b) // in ra true
    fmt.Println(!a) // in ra false
}

Sử dụng kiểu bool trong điều kiện:

go
Copy
1
2
3
4
    var a = true
    if a {
        fmt.Println("This statement is true")
    }

Kiểu bool cũng có thể được sử dụng trong các hàm, và được sử dụng để trả về kết quả logic của hàm, kết quả của hàm kiểm tra hoặc kết quả của hàm so sánh.

Kiểu số nguyên

Go có nhiều kiểu số nguyên khác nhau mà bạn có thể sử dụng, bao gồm:

  • int: kiểu số nguyên mặc định, tương đương với kiểu int trong C/C++.
  • int8, int16, int32, int64: kiểu số nguyên có kích thước cụ thể.
  • uint: kiểu số nguyên không âm mặc định, tương đương với kiểu unsigned int trong C/C++
  • uint8, uint16, uint32, uint64: kiểu số nguyên không âm có kích thước cụ thể
  • rune: alias của int32
  • byte: alias của uint8

Phạm vi giá trị của kiểu số nguyên

Kiểu Giới hạn
int8 -128 – 127
int16 -32768 – 32767
int32 -2147483648 – 2147483647
int64 -9223372036854775808 – 9223372036854775807
uint8 0 – 255
uint16 0 – 65535
uint32 0 – 4294967295
uint64 0 – 18446744073709551615

Kiểu số thực

Số thực là các giá trị có phần thập phân, ví dụ 1.2 hoặc 2.3. Các kiểu số thực trong Go là float32 và float64, thông thường thì chỉ cần dùng float64 để biểu diễn số thực.

Phạm vi giá trị của kiểu số thực

Kiểu Giới hạn
float32 +/- 3.4e +/- 38 (~7 chữ số lẻ)
float64 +/- 1.8e +/- 308 (~15 chữ số lẻ)

Kiểu số phức

Trong ngôn ngữ lập trình Go, có 2 kiểu số phức là complex64 và complex128

  • Complex64: Số phức có phần thực float32 và phần ảo
  • Complex128: Số phức có phần thực float64 và phần ảo

Kiểu ký tự

Trong Go (Golang), kiểu rune được sử dụng để lưu trữ một ký tự Unicode. Nó là một alias cho kiểu int32, vì vậy nó có thể chứa bất kỳ giá trị Unicode nào trong phạm vi từ 0 đến 2^32-1.

Sự khác nhau giữa runebyte (alias cho uint8) là rune chứa một giá trị Unicode, trong khi byte chứa một giá trị ASCII. Do đó, nếu bạn muốn làm việc với ký tự Unicode, bạn sẽ sử dụng rune.

Ví dụ về cách sử dụng kiểu rune:

go
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import "fmt"

func main() {
    var myRune rune = 'a' // Sử dụng dấu nháy đơn
    fmt.Println(myRune) // in ra 97

    myRune = '\u0041' // Sử dụng mã unicode
    fmt.Println(myRune) // in ra 65

    myRune = '\U00000041' // Sử dụng mã unicode với định dạng U
    fmt.Println(myRune) // in ra 65
}

Kiểu chuỗi

Trong Golang, kiểu string được sử dụng để lưu trữ một chuỗi ký tự. Có nhiều phương thức để thao tác với chuỗi.

Ví dụ về cách sử dụng kiểu string:

go
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import "fmt"

func main() {
    var myString string = "Hello, world!"
    fmt.Println(myString) // in ra "Hello, world!"

    myString = "This is a new string"
    fmt.Println(myString) // in ra "This is a new string"

    // Sử dụng dấu nháy kép để truyền giá trị cho chuỗi
    myString = "This is another string"
    fmt.Println(myString) // in ra "This is another string"
}

Bạn cũng có thể sử dụng toán tử + để nối các chuỗi lại với nhau :

go
Copy
1
2
3
    myString := "Hello"
    myString += ", world!"
    fmt.Println(myString) // in ra "Hello, world!"

Trong Go, chuỗi là kiểu dữ liệu không thay đổi (immutable) do đó không thể gán giá trị cho một ký tự trong chuỗi, nếu muốn thay đổi bạn phải tạo mới chuỗi và gán giá trị mới vào .

Go cung cấp rất nhiều hàm built-in và thư viện cho làm việc với chuỗi như chuyển đổi chuỗi sang in hoa, viết thường, cắt chuỗi, tìm kiếm trong chuỗi, sắp xếp chuỗi, v.v ...

Đánh giá bài viết: 5/5 (61 đánh giá)
Bạn chưa đánh giá

Bình luận

Author
hoclaptrinh.io author
Tác giả:Yuto Yasunaga

Mình là một full stack developer, tốt nghiệp và làm việc tại Nhật Bản. Trang web này là nơi mình tổng hợp, đúc kết và lưu trữ lại những kiến thức trong quá trình học và làm việc liên quan đến IT.
Hy vọng những bài viết ở website này sẽ có ích cho bạn.