Converting a string to an integer in Go
The Problem
You don’t know how to convert a string to an integer in Go.
The Solution
The simplest way to convert a string to an integer is to use the Atoi function from the strconv package.
For example, you can convert the string "123" to the value 123 as follows:
package main
import (
"fmt"
"log"
"strconv"
)
func main() {
example := "123"
integer, err := strconv.Atoi(example)
if err != nil {
log.Fatal("failed to convert string to integer", err)
}
fmt.Println(integer + 1)
}
This prints the sum of the integer plus one:
124
For performance reasons (and convenience), the above example assumes that your integer is a base-10 signed integer.
If you need more control, you can use the ParseInt function from the same package:
package main
import (
"fmt"
"log"
"strconv"
)
func main() {
hexadecimal := "7b"
integer, err := strconv.ParseInt(hexadecimal, 16, 32)
if err != nil {
log.Fatal("failed to convert string to integer", err)
}
fmt.Println(integer + 1)
}
This prints the sum of the integer plus one:
124
Note: Although the above example uses base 16 and bit size 32, ParseInt still returns a 64-bit integer.
Converting Strings to Other Numerical Types
If you want to convert a string to another numerical type, you can use the ParseFloat, ParseUint, or ParseComplex functions, also from the strconv package.
Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.