Converting a String to an Integer in Go

2 min read .

In Go, converting a string to an integer is a common operation, especially when dealing with user input or data read from external sources. Go provides several methods for performing this conversion, each with its own use case. In this post, we’ll explore the different ways to convert a string to an int in Go.

1. Using strconv.Atoi()

The strconv package in Go offers a function specifically for converting strings to integers: strconv.Atoi(). This function parses a string and returns the corresponding integer value along with an error if the conversion fails.

Example:

package main

import (
	"fmt"
	"strconv"
)

func main() {
	str := "123"
	num, err := strconv.Atoi(str)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println("The integer value is:", num)
}

In this example, strconv.Atoi() takes a string str and attempts to convert it to an integer. If successful, it returns the integer value and a nil error. If the conversion fails (e.g., if the string is not a valid integer), it returns an error which should be handled appropriately.

2. Using strconv.ParseInt()

If you need more control over the conversion, such as specifying the integer base or dealing with different bit sizes, you can use strconv.ParseInt(). This function parses a string as an integer with a specified base and bit size.

Example:

package main

import (
	"fmt"
	"strconv"
)

func main() {
	str := "123"
	num, err := strconv.ParseInt(str, 10, 0)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println("The integer value is:", num)
}

Here, strconv.ParseInt() takes three arguments:

  • The string to parse (str)
  • The base (10 for decimal)
  • The bit size (0 means the default bit size for the integer type)

This function returns the parsed integer as an int64 by default, so you may need to cast it to a different integer type if necessary.

3. Using strconv.ParseUint()

For unsigned integers, you can use strconv.ParseUint(). This function is similar to strconv.ParseInt(), but it parses the string as an unsigned integer.

Example:

package main

import (
	"fmt"
	"strconv"
)

func main() {
	str := "123"
	num, err := strconv.ParseUint(str, 10, 0)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	fmt.Println("The unsigned integer value is:", num)
}

In this example, strconv.ParseUint() parses the string as an unsigned integer with the same base and bit size options as strconv.ParseInt().

Conclusion

Converting a string to an integer in Go is a straightforward task, thanks to the strconv package. You can use strconv.Atoi() for simple conversions, or strconv.ParseInt() and strconv.ParseUint() for more control over the parsing process. Handling errors gracefully is crucial to ensure your program can manage invalid input or conversion issues effectively.

Tags:
Golang

See Also

chevron-up