English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Предпосылки, вы должны изучить:Типы данных Go
При присвоении значения одного типа данных другому типу данных происходит типовое преобразование. Языки программирования с статическими типами данных, такие как C / C ++, Java, предоставляют поддержку для неявного преобразования типов, но Go отличается, так как даже если типы данных совместимы, тоне поддерживаетсяАвтоматическое преобразование типов или неявное преобразование типовПричина в том, что мощная система типов Go не позволяет этого сделать. Для типовых преобразований необходимо выполнять явное преобразование.
Как Go выполняет типовые преобразования?
Если вам нужно использовать某些 характеристики иерархии типов данных, нам нужно преобразовать сущность из одного типа данных в другой. Общий синтаксис преобразования значения val в тип T: T(val).
var w3codebox1 int = 845 // явное преобразование типов var w3codebox2 float64 = float64(w3codebox1) var w3codebox3 int64 = int64(w3codebox1) var w3codebox4 uint = uint(w3codebox1)
// вычислить среднее значение 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
Внимание:Поскольку Go имеет мощную систему типов, Mixing типов чисел в выражениях (например, сложение, вычитание, умножение, деление и т.д.) не допускается, и不允许 выполнять присваивание типов между двумя смешанными типами.
var w3codebox1 int64 = 875 // оно вызывает ошибку компиляции нам // потому что выполняется смешанный тип, например, int64 как тип int var w3codebox2 int = w3codebox1 var w3codebox3 int = 100 // оно вызывает ошибку компиляции // это недопустимое действие // потому что тип смешанный int64 и int складываются var addition = w3codebox1 + w3codebox3