Ép kiểu hay chuyển đổi kiểu dữ liệu trong Golang

Chuyển đổi kiểu xảy ra khi chúng ta gán giá trị của một kiểu dữ liệu cho một kiểu dữ liệu khác. Các ngôn ngữ được gõ tĩnh như C/C++, Java, cung cấp hỗ trợ cho chuyển đổi kiểu ngầm định nhưng Golang thì khác, vì nó không hỗ trợ ép kiểu tự động hoặc ngầm định ngay cả khi các kiểu dữ liệu tương thích. Lý do cho điều này bởi Hệ thống kiểu mạnh của Golang không cho phép thực hiện. Đối với chuyển đổi kiểu, bạn phải triển khai rõ ràng.

Chuyển đổi kiểu trong Golang

Theo mô tả, không có từ hoặc thuật ngữ ép kiểu trong Golang. Nếu bạn thử tìm kiếm Ép kiểu trong mô tả hoạt tài liệu sử dụng Golang, bạn sẽ không tìm thấy gì giống như thế này. Chỉ có Chuyển đổi kiểu. Trong các ngôn ngữ lập trình khác, ép kiểu cũng được gọi là chuyển đổi kiểu.

Tại sao cần phải chuyển đổi kiểu?

Vâng, nếu bạn cần tận dụng một số đặc điểm nhất định của hệ thống phân cấp kiểu dữ liệu, thì chúng ta phải thay đổi các thực thể từ kiểu dữ liệu này sang kiểu dữ liệu khác. Cú pháp chung để chuyển đổi giá trị val sang kiểu T là T(val).

Ví dụ:

var geek1 int = 845

// chuyển đổi kiểu rõ ràng
var geek2 float64 = float64(geek1)

var geek3 int64 = int64(geek1)

var geek4 uint = uint(geek1)
// Chương trình Go tìm trung bình của các số
package main

import "fmt"

func main() {

	// lấy dữ liệu cần thiết vào các biến
	var totalsum int = 846
	var number int = 19
	var avg float32

	// chuyển đổi kiểu rõ ràng
	avg = float32(totalsum) / float32(number)

	// Hiện kết quả
	fmt.Printf("Average = %f\n", avg)
}

Kết quả:

Trung bình = 44.526318

Lưu ý: Vì Golang có hệ thống kiểu dữ liệu mạnh nên nó không cho phép trộn (như phép cộng, phép trừ, phép nhân, phép chia, v.v.) các kiểu số trong biểu thức và bạn cũng không được phép thực hiện phép gán giữa hai kiểu dữ liệu hỗn hợp.

Ví dụ:

var geek1 int64 = 875

//nó sẽ đưa ra lỗi thời gian biên dịch vì chúng ta
// đang thực hiện một phép gán giữa
// các kiểu hỗn hợp tức là int64 là kiểu int
var geek2 int = geek1

var geek3 int = 100

// nó đưa ra lỗi thời gian biên dịch
// vì đây là phép toán không hợp lệ
// vì các kiểu là hỗn hợp tức là
// int64 và int
var addition = geek1 + geek3
Thứ Tư, 26/02/2025 09:28
2,813 👨 164
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng