Пакет strconv - стандартный способ конвертации между строками и числами:
// string -> int
n, err := strconv.Atoi("42") // 42, nil
n, err := strconv.Atoi("abc") // 0, error
// int -> string
s := strconv.Itoa(42) // "42"
// Для других типов:
f, err := strconv.ParseFloat("3.14", 64) // 3.14
i, err := strconv.ParseInt("FF", 16, 64) // 255 (hex)
b, err := strconv.ParseBool("true") // true
// Обратно:
s := strconv.FormatFloat(3.14, 'f', 2, 64) // "3.14"
s := strconv.FormatInt(255, 16) // "ff"
Частая ошибка: int("42") не компилируется - это не приведение типа, а попытка создать int из строки (невозможно). string(42) тоже не то - вернет символ с кодом 42 ("*"), а не "42".