Конвертация строк в числа и с плавающей запятой
Строки можно преобразовывать в цифры, используя пакет strconv в
стандартной библиотеке Go. Пакет strconv содержит функции для преобразования для типов integer и float.
Это очень распространенная операция при получении ввода от пользователя.
Например, если у вас есть программа, которая запрашивает возраст пользователя,
и когда пользователь вводит данные, они сохраняются как string.
Затем вам нужно будет преобразовать их в int, чтобы выполнять математические операции.
Если строка не имеет десятичных дробей, вы можете
преобразовать ее в целое число, используя функцию strconv.Atoi.
Если вы знаете, что будете использовать число типа float, вам следует использовать strconv.ParseFloat.
Давайте используем в качестве примера пользователя Sammy, отслеживающего количество строк,
которое он пишет каждый день. Возможно, вам нужно будет выполнять математические манипуляции,
чтобы предоставить пользователю более интересные данные, но эти значения хранятся в строках:
Поскольку два числовых значения хранятся в строках, вы получили ошибку.
Операнд - для вычета не является действительным оператором для строковых значений.
Измените код, включив метод strconv.Atoi(), который будет преобразовывать строки в числа,
что позволит выполнять математические операции со значениями, которые были строками.
Поскольку при преобразовании строки в целое число может произойти сбой,
вы должны убедиться в отсутствии ошибок. Вы можете использовать оператор if,
чтобы проверить, что конвертация была выполнена успешно.
Поскольку строка может содержать не только числовые значения, метод strconv.Atoi() может возвращать как преобразованный тип,
так и потенциальную ошибку. При преобразовании lines_yesterday с помощью функции strconv.Atoi вы
должны проверить возвращаемое значение err, чтобы убедиться, что значение преобразовано. Если err не nil,
это означает, что strconv.Atoi удалось успешно преобразовать значение строки в целое число.
В данном примере вы использовали оператор if для проверки на ошибки,
и если возвращена ошибка, вы использовали log.Fatal для сохранения ошибки и выхода из программы.