Равенство строк в Go
При использовании конструкции if можно
сравнивать и строки. Для примера пусть в
переменной test хранится какая-то
строка, например такая:
test := "abc"
Давайте проверим, равно ли содержимое переменной
test строке "abc":
test := "abc"
if test == "abc" {
fmt.Println("Y") // сработает это, так как переменная равна "abc"
} else {
fmt.Println("N")
}
Две строки равны, когда совпадают и буквы, и их
порядок. Знак == смотрит на текст, регистр
букв учитывается. Неравенство записывают знаком
!=. С обеих сторон должен быть тип строка.
Сравним пароль с ожидаемым словом:
pass := "secret"
want := "secret"
if pass == want {
fmt.Println("allowed") // сработает это
} else {
fmt.Println("denied")
}
При другом тексте сработает вторая ветка:
pass := "open"
want := "secret"
if pass == want {
fmt.Println("allowed")
} else {
fmt.Println("denied") // сработает это
}
Дана строка:
role := "admin"
При совпадении с "admin" выведите "boss",
иначе "guest".
Даны переменные:
lang := "go"
alt := "Go"
Если строки не равны, выведите "case",
иначе "same".
Сравните "hi" и "hi" в условии
и выведите "ok" или "bad".