Сужение целого в Go
Сужение - это перевод числа в тип, куда оно
может не поместиться. У int8 диапазон
от -128 до 127.
Если число в диапазон входит, оно остается собой:
var num1 int = 50
var num2 int8 = int8(num1)
fmt.Println(num2) // выведет 50
Константу за краем в int8 записать нельзя.
Объявление не собирается:
var num int8 = 300 // программа не собирается
Широкую переменную с тем же числом перевести можно.
На экране будет уже не 300. Обычным счетом
это число заранее не получить, поэтому в узкий
тип кладут только то, что точно помещается:
var num1 int = 300
var num2 int8 = int8(num1)
fmt.Println(num2) // выведет 44
Дана переменная:
var num int = 40
Переведите ее в int8 и выведите
новую переменную. Сначала скажите,
изменится ли число.
Дан следующий код:
var num int8 = 200
Скажите, соберется ли это объявление.