Преобразование типов и константы

В Go нет неявных преобразований — только явные:

var i int     = 42
var f float64 = float64(i)
var u uint    = uint(f)

Попытка присвоить int переменной float64 без явного преобразования — ошибка компиляции. Это защищает от скрытых потерь точности.

Компилятор выводит тип из правой части при :=:

i := 42       // int
f := 3.14     // float64
c := 1 + 2i   // complex128
s := "hello"  // string

Константы объявляются с const и вычисляются на этапе компиляции:

const Pi      = 3.14159
const MaxSize = 1024

const (
    StatusOK       = 200
    StatusNotFound = 404
)

iota — счётчик в const-блоке, инкрементируется с каждой строкой начиная с 0:

const (
    Sunday = iota // 0
    Monday        // 1
    Tuesday       // 2
)

Константы «нетипизированы» до момента использования — числовая константа участвует в выражениях с разными числовыми типами без явного преобразования.


ЗаданиеСложность
1Упражнение 1easy
2Упражнение 2easy
3Упражнение 3medium
4Упражнение 4medium