先決條件,您應該學習了:Golang數據類型
當我們將一種數據類型的值分配給另一種數據類型時,就會發(fā)生類型轉換。諸如C / C ++,Java之類的靜態(tài)類型語言提供了對隱式類型轉換的支持,但是Golang有所不同,因為即使數據類型兼容,它也不支持自動類型轉換或隱式類型轉換。原因是Golang的強類型系統(tǒng)不允許這樣做。對于類型轉換,必須執(zhí)行顯式轉換。
Golang 如何進行類型轉換?
如果您需要利用數據類型層次結構的某些特征,那么我們必須將實體從一種數據類型轉換為另一種數據類型。將值val轉換為類型T的一般語法是T(val)。
var nhooo1 int = 845 // 顯式類型轉換 var nhooo2 float64 = float64(nhooo1) var nhooo3 int64 = int64(nhooo1) var nhooo4 uint = uint(nhooo1)
//計算平均值 package main import "fmt" func main() { var totalsum int = 446 var number int = 23 var avg float32 // 顯式類型轉換 avg = float32(totalsum) / float32(number) // 顯示結果 fmt.Printf("平均值 = %f\n", avg) }
輸出:
平均值 = 19.391304
注意:由于Golang具有強大的類型系統(tǒng),因此不允許在表達式中混合使用數字類型(例如加,減,乘,除等),并且不允許在兩個混合類型之間執(zhí)行賦值類型。
var nhooo1 int64 = 875 //它會在編譯時拋出錯誤給我們 //因為正在執(zhí)行混合類型,例如把int64作為int類型 var nhooo2 int = nhooo1 var nhooo3 int = 100 //它拋出編譯時錯誤 //這是無效操作 //因為類型是混合的 int64 和 int 相加 var addition = nhooo1 + nhooo3