🟢 Лёгкий · 1 очк. Основы синтаксиса
Какой результат: fmt.Println(1 + "1")?
A 2
B 11
C Ошибка компиляции
D panic
Объяснение вопроса

Выражение 1 + "1" в Go не компилируется. Go - строго типизированный язык: нельзя складывать int и string без явного приведения типов.

Почему так

В отличие от JavaScript или Python, Go не выполняет неявных преобразований между типами. Это предотвращает скрытые баги (например, неожиданную конкатенацию вместо сложения чисел).

// Ошибка компиляции: invalid operation: 1 + "1"
// fmt.Println(1 + "1")

// Правильно - явное преобразование:
fmt.Println(1 + 1)                    // 2
fmt.Println("1" + "1")                // 11 (конкатенация строк)
fmt.Println(strconv.Itoa(1) + "1")   // "11"
n, _ := strconv.Atoi("1")
fmt.Println(1 + n)                   // 2

Идиоматичный подход

Для форматирования строк используйте fmt.Sprintf или strconv; для парсинга чисел - strconv.Atoi, strconv.ParseInt и т.д.

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