Почему выдает ошибку что введено не число go?

Ошибка "введено не число go" может возникнуть в случае, когда вы пытаетесь выполнить операцию, требующую числового значения, но вместо числа вводите строку "go".

Язык Go является статически типизированным, что означает, что переменные должны быть объявлены с определенным типом данных и не могут быть использованы с другим типом данных без явного преобразования. Поэтому, если вы объявили переменную как числовую, а затем пытаетесь присвоить ей строковое значение "go", возникает ошибка.

Пример кода, который приводит к ошибке:

var number int
number = "go" // ошибка: cannot use "go" (type string) as type int in assignment

Для решения проблемы нужно обеспечить, чтобы вводимое значение было числом, либо осуществить преобразование строки в число.

Пример кода с проверкой на число:

package main

import (
	"fmt"
	"strconv"
)

func main() {
	var input string
	fmt.Println("Введите число:")
	fmt.Scanln(&input)
	
	_, err := strconv.Atoi(input)
	if err != nil {
		fmt.Println("Ошибка: введено не число")
		return
	}

	fmt.Println("Введено число:", input)
}

В данном примере используется функция strconv.Atoi, которая пытается преобразовать входную строку в число типа int. Если преобразование успешно, то ошибка не возникает и программа продолжает работу. В противном случае выводится сообщение об ошибке "введено не число".