Что выведет код 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 ошибок.