🟡 Средний · 2 очк. Разное / продвинутое
Что вернёт cmp.Or("", "", "default") (Go 1.22+)?
A ""
B "default"
C panic
D Ошибка компиляции
Объяснение вопроса

cmp.Or (Go 1.22) возвращает первое из переданных значений, которое не является zero value своего типа. Для строк zero value - пустая строка "".

cmp.Or("", "", "default")  // "default"
cmp.Or(0, 0, 42)          // 42
cmp.Or(nil, &x)            // &x (первый ненулевой)

Зачем нужен

Удобно задавать значение по умолчанию: "первый непустой из списка". Аналог a || b || c в JavaScript, но для любых типов и с учётом zero value.

Параметры вычисляются по порядку; как только встретится ненулевой, он возвращается. Остальные не вычисляются (ленивое поведение для вызовов функций).

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.