Интересной частью вышеупомянутой викторины является строка 12:
i,_: = strconv.Atoi(s)
Данный участок кода создает новую переменную i, область действия которой находится только в пределах оператора if. Переменная i, которая выводится в строке 15, фактически определена в строке 9, а не та, которая определена в строке 12. Следовательно, эта программа выведет 2
.
Стоит также остановиться на строке 12, где происходит конвертация строк в числа.
Строки можно преобразовывать в цифры, используя пакет strconv в стандартной библиотеке Go. Пакет strconv содержит функции для преобразования integer и float. Это очень распространенная операция при получении ввода от пользователя. Например, если у вас есть программа, которая запрашивает возраст пользователя, и когда пользователь вводит данные, они сохраняются как string. Затем вам нужно будет преобразовать их в int, чтобы выполнять математические операции.
Если строка не имеет десятичных дробей, вы можете преобразовать ее в целое число, используя функцию strconv.Atoi. Если вы знаете, что будете использовать число типа float, вам следует использовать strconv.ParseFloat.