Что выведет код Junior Строки, байты и руны обновлено
Что выведет Go: сравнение и срезы строк
Вопрос
Что выведет программа? Go 1.23, в go.mod указано go 1.23.
package main
import (
"fmt"
"strings"
)
func main() {
a := "apple"
fmt.Println(a < "banana", "Z" < "a", a[1:3], strings.ToUpper(a[:1])+a[1:])
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: true true pp Apple. Строки сравниваются побайтно: "a" меньше "b", а заглавная "Z" (90) меньше строчной "a" (97).
Что выведет
true true pp Apple
Разбор
Строки сравниваются побайтно: "a" меньше "b", а заглавная "Z" (90) меньше строчной "a" (97). Срез a[1:3] берёт байты 1 и 2. Для ASCII-строки так можно сделать первую букву заглавной.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Строки, байты и руны»
- Байты и символы в строке Go
- Разворот строки с кириллицей на Go
- Сжатие RLE для строк UTF-8 на Go
- Палиндром с кириллицей и знаками на Go
- Перенос текста по ширине в символах на Go
- Что выведет Go: len и range по строке с кириллицей
- Копирует ли []byte(s)
- Склейка строк в цикле