Skip to content

Kiểu dữ liệu trong Go

Dưới đây liệt kê tất cả các kiểu tích hợp trong ngôn ngữ Go, để tham khảo, chi tiết hơn có thể đến Sổ tay tham khảo - Kiểu.

Kiểu boolean

Kiểu boolean chỉ có giá trị đúng và sai.

KiểuMô tả
booltrue là giá trị đúng, false là giá trị sai

TIP

Trong Go, số nguyên 0 không đại diện cho giá trị sai, số nguyên khác 0 cũng không thể đại diện cho giá trị đúng, tức là số không thể thay thế giá trị boolean để phán đoán logic, hai loại này là hoàn toàn khác nhau.

Kiểu số nguyên

Go phân bổ các kiểu khác nhau cho số nguyên có số bit khác nhau, chủ yếu chia thành số nguyên không dấu và số nguyên có dấu.

Số thứ tựKiểu và mô tả
uint8Số nguyên 8 bit không dấu
uint16Số nguyên 16 bit không dấu
uint32Số nguyên 32 bit không dấu
uint64Số nguyên 64 bit không dấu
int8Số nguyên 8 bit có dấu
int16Số nguyên 16 bit có dấu
int32Số nguyên 32 bit có dấu
int64Số nguyên 64 bit có dấu
uintSố nguyên không dấu ít nhất 32 bit
intSố nguyên ít nhất 32 bit
uintptrTương đương số nguyên 64 bit không dấu, nhưng chuyên dùng để lưu trữ phép toán con trỏ, dùng để lưu địa chỉ con trỏ chết.

Kiểu số dấu phẩy động

Số dấu phẩy động IEEE-754, chủ yếu chia thành số dấu phẩy động đơn精度 và số dấu phẩy động kép精度.

KiểuMô tả
float32Số dấu phẩy động 32 bit IEEE-754
float64Số dấu phẩy động 64 bit IEEE-754

Kiểu số phức

KiểuMô tả
complex128Số thực và số ảo 64 bit
complex64Số thực và số ảo 32 bit

Kiểu ký tự

Chuỗi trong ngôn ngữ Go hoàn toàn tương thích UTF-8

KiểuMô tả
byteTương đương uint8 có thể biểu thị ký tự ANSCII
runeTương đương int32 có thể biểu thị ký tự Unicode
stringChuỗi là dãy byte, có thể chuyển đổi thành kiểu []byte tức là slice byte

Kiểu phái sinh

KiểuVí dụ
Mảng[5]int, mảng số nguyên độ dài 5
Slice[]float64, slice số dấu phẩy động 64 bit
Mapmap[string]int, map có khóa kiểu chuỗi, giá trị kiểu số nguyên
Structtype Gopher struct{}, struct Gopher
Con trỏ*int, một con trỏ số nguyên.
Hàmtype f func(), một kiểu hàm không có tham số, không có giá trị trả về
Interfacetype Gopher interface{}, interface Gopher
Kênhchan int, kênh số nguyên

Giá trị 0

Trong tài liệu chính thức, giá trị 0 được gọi là zero value, giá trị 0 không chỉ đơn thuần là số 0 theo nghĩa đen, mà chính xác hơn là giá trị rỗng hoặc giá trị mặc định của một kiểu.

KiểuGiá trị 0
Kiểu số0
Kiểu booleanfalse
Kiểu chuỗi""
MảngTập hợp các giá trị 0 của kiểu tương ứng với độ dài cố định
StructStruct mà các trường bên trong đều là giá trị 0
Slice, map, hàm, interface, kênh, con trỏnil

nil

nil tương tự như none hoặc null trong các ngôn ngữ khác, nhưng không tương đương. nil chỉ là giá trị 0 của một số kiểu tham chiếu, và không thuộc bất kỳ kiểu nào, từ mã nguồn có thể thấy nil chỉ là một biến.

go
var nil Type

Và câu lệnh nil == nil như vậy không thể biên dịch được.

Golang by www.golangdev.cn edit