Сравнение рун в Go
Руны сравнивают так же, как целые числа. Литерал
в одинарных кавычках имеет тип rune, поэтому
две руны соединяют знаком == или !=
между собой.
Байт из строки по индексу имеет тип byte.
С руной его напрямую не сравнивают: для английской
буквы удобно сравнить байт с byte('A')
или с "A"[0].
Сравним две руны и выберем ветку:
a := 'X'
b := 'X'
if a == b {
fmt.Println("same rune")
} else {
fmt.Println("diff rune")
}
Проверим первый байт английского слова:
word := "Arc"
if word[0] == byte('A') {
fmt.Println("starts with A")
} else {
fmt.Println("other start")
}
Пусть дана строка из цифр. Проверим первый
байт. Байт сравнивают с byte('1'),
а не с числом 1:
str := "12345"
if str[0] == byte('1') {
fmt.Println("!") // сработает это
}
Проверим последний байт на равенство
символу "5":
str := "12345"
last := str[len(str)-1]
if last == byte('5') {
fmt.Println("!") // сработает это
}
Дана переменная:
ch := 'z'
Если ch равно 'z', выведите "end",
иначе "mid".
Дана строка:
tag := "go"
Если первый байт равен byte('g'), выведите
"g", иначе "other".
Сравните руны 'M' и 'N' в условии
и выведите "near" или "far".
Дана некоторая строка. Проверьте,
заканчивается ли она на символ "0".