Разные типы в Go
Давайте теперь будем сравнивать значения разных
типов. Сравнение разных типов язык не принимает. Знак
== или != требует, чтобы слева и
справа был один и тот же тип. Строку и число
в одной проверке не соединяют.
Компилятор останавливает сборку, если типы не сходятся. Чтобы сравнить текст с числом, сначала нужно привести значения к одному виду теми приемами, которые уже проходили для арифметики.
Попробуем сравнить строку с числом в условии:
label := "5"
n := 5
if label == n {
fmt.Println("match")
}
Та же ошибка, если сравнить байт строки с руной без приведения:
text := "A"
if text[0] == 'A' {
fmt.Println("letter")
}
Скажите, соберется ли программа, если в условии
сравнить "10" и 10 знаком равенства.
Скажите, какой тип у 'A' и почему
"A"[0] == 'A' не подходит без
преобразования.
Даны переменные:
code := 1
note := "1"
Скажите, можно ли их сравнить в условии без преобразования.