Как в Golang делать приведение типов данных и делать их вывод? Объясните пожалуйста на примерах и с использованием реального кода. Если есть какие-то сайты с подсказками, то тоже кидайте.
Вот вариант с числами
var a int var b int64 a = 5 b = int64(a)
Golang типизированый язык и переменная не может быть разного типа! Всегда нужно приводить к другому типу и конвертировать если нужно
Вот тоже неплохой пример
package main import ( "fmt" "math" ) func main() { var x, y int = 3, 4 var f float64 = math.Sqrt(float64(x*x + y*y)) var z uint = uint(f) fmt.Println(x, y, z) }
По сути, приведение типа не такое уж и сложное, я бы даже сказал элементарное.
Держи примеры для числовых типов:
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
Или проще:
i := 42
f := float64(i)
u := uint(f)
Вообще в отличие от C, в Golang’е явные приведения типов требуют присвоения между различными элементами. В данном примере это можно подробно пронаблюдать:
package main
import (
"fmt"
"math"
)
func main() {
var x, y int = 3, 4
var f float64 = math.Sqrt(float64(x*x + y*y))
var z uint = uint(f)
fmt.Println(x, y, z)
}
Если переменная объявлена без явного указания типа (с помощью var или :=), то тип переменной выводится из значения на правой стороне.
Если же правая часть объявления типизирована, то новая переменная получает такой же тип.
Ага, с теорией всё вроде как ясно, не могли бы вы скинуть пример кода, чтобы было легче понять, мне всегда было легче изучать всё сразу на практике. Люблю я щупать чужие кодики)))
Ну вот допустим:
var i int
j := i // j это int
Но когда же правая часть содержит нетипизированную числовую константу, то новая переменная может быть float64, int или complex128 в зависимости от того, какая точность константы:
i := 42 // int
f := 3.142 // float64
g := 0.867 + 0.5i // complex128
И вот тебе пример использования всего этого:
package main
import "fmt"
func main() {
v := 42
fmt.Printf("v is of type %T\n", v)
}
Спасибо большое за объяснения, очень интересно и понятно мне всё объяснили. Теперь можно и самому пробовать делать приведение и вывод типа.