8

Convert between byte array/slice and string

 3 years ago
source link: https://yourbasic.org/golang/convert-string-to-byte-slice/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Convert between byte array/slice and string

yourbasic.org/golang
Golang gopher

Basics

When you convert between a string and a byte slice (array), you get a brand new slice that contains the same bytes as the string, and vice versa.

  • The conversion doesn’t change the data;
  • the only difference is that strings are immutable, while byte slices can be modified.

If you need to manipulate the characters (runes) of a string, you may want to convert the string to a rune slice instead. See Convert between rune array/slice and string.

Convert string to bytes

When you convert a string to a byte slice, you get a new slice that contains the same bytes as the string.

b := []byte("ABC€")
fmt.Println(b) // [65 66 67 226 130 172]

Note that the character is encoded in UTF-8 using 3 bytes. See the Go rune article for more on UTF-8 encoding of Unicode code points.

Convert bytes to string

When you convert a slice of bytes to a string, you get a new string that contains the same bytes as the slice.

s := string([]byte{65, 66, 67, 226, 130, 172})
fmt.Println(s) // ABC€

Performance

These conversions create a new slice or string, and therefore have time complexity proportional to the number of bytes that are processed.

More efficient alternative

In some cases, you might be able to use a string builder, which can concatenate strings without redundant copying:

bricklayer-thumb.jpg

Efficient string concatenation [full guide]

Further reading

40+ practical string tips [cheat sheet]

Share:             


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK