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: true
và false
.
Ví dụ về cách sử dụng kiểu bool
:
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 ...
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:
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 rune
và byte
(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
:
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
:
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 :
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 ...