How to Convert Byte to String in Go

Hey! If you love Go and building Go apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Want to learn how to build better Go applications faster and easier? You can.

Check out my course on the Go Standard Library. You can check it out now for free.


In this article, we will explore how to convert byte to string in Go. We will discuss the differences between strings and bytes in Go and provide examples of converting bytes to strings using various methods.
Introduction
Go is a statically typed language that has a built-in type called byte which represents an 8-bit unsigned integer. However, in practice, most users are not aware of how to work with bytes effectively. In this article, we will explore the differences between strings and bytes in Go and provide examples of converting bytes to strings using various methods.
Understanding String and Bytes in Go
Before diving into converting bytes to strings, it’s essential to understand the difference between strings and bytes in Go. A string is a sequence of characters that are represented as Unicode code points. In contrast, a byte is an 8-bit unsigned integer that can represent any value from 0 to 255.
In Go, strings are immutable, which means they cannot be changed once created. On the other hand, bytes are mutable, which means their values can be modified after they have been created. However, it’s important to note that modifying a byte does not change the underlying string; instead, it creates a new byte value with the updated value.
Converting Bytes to Strings in Go
Now that we understand the difference between strings and bytes in Go, let’s explore how to convert bytes to strings using various methods.
Method 1: Using the Built-In String Function
Go provides a built-in function called string() to convert a byte value to a string. Here is an example of how to use this function:

package main

import "fmt"

func main() {
	var b byte = 65
	s := string(b)
	fmt.Println("The ASCII code for A is", s) // Output: The ASCII code for A is A
}

In the above example, we declare a variable called b of type byte and assign it the value 65 (which represents the ASCII code for capital letter A). We then use the string() function to convert the byte value to a string. Finally, we print the resulting string using fmt.Println().
Method 2: Using a Type Cast
Another way to convert a byte to a string in Go is by using type casting. Here is an example of how to do this:

package main

import "fmt"

func main() {
	var b byte = 65
	s := string(b)
	fmt.Println("The ASCII code for A is", s) // Output: The ASCII code for A is A
}

In the above example, we declare a variable called b of type byte and assign it the value 65 (which represents the ASCII code for capital letter A). We then use type casting to convert the byte value to a string. Finally, we print the resulting string using fmt.Println().
Method 3: Using the Unicode Functions
Go provides several functions that can be used to work with unicode characters in strings. One of these functions is the rune() function, which converts a byte to a rune (a UTF-8 code point). Here is an example of how to use this function to convert bytes to strings:

package main

import "fmt"

func main() {
	var b byte = 65
	r := rune(b)
	s := string(r)
	fmt.Println("The ASCII code for A is", s) // Output: The ASCII code for A is A
}

In the above example, we declare a variable called b of type byte and assign it the value 65 (which represents the ASCII code for capital letter A). We then use the rune() function to convert the byte value to a rune. Finally, we use type casting to convert the rune to a string.
Conclusion
In this article, we have explored how to convert bytes to strings in Go using various methods. We have seen that converting bytes to strings is essential when working with characters and strings in Go. By understanding the differences between strings and bytes in Go and using the appropriate conversion method, you can ensure that your code produces correct results.


Questions or comments? Reach out to me


Learn how to leverage the Go Standard Library like a PRO.

I just created a new course, The Go Standard Library, check it out!