Golang String til byte og omvendt

Golang String til byte og omvendt
Vi definerer en streng i Go som en skrivebeskyttet skive av byte. En streng kan holde Unicode-tekst i UTF-8-koding eller annet forhåndsdefinert format. Men siden en streng i utgangspunktet er en skive av byte, trenger den ikke nødvendigvis å holde slike typer.

I denne artikkelen lærer du hvordan du konverterer en streng til en byte -matrise og en byte -matrise til en streng. Husk at denne artikkelen ikke fungerer som en introduksjon til strenger eller byte i Go.

Konverter streng til byte

Før vi lærer hvordan du konverterer en streng til en byte, la oss definere hva en byte er. En byte refererer til et 8-bits usignert heltall. Byte er veldig vanlig når du jobber med skiver.

I Go kan vi konvertere en streng til en byte ved hjelp av byte () -funksjonen.

Funksjonssyntaksen er som vist:

[] byte (streng)

Funksjonen tar strengen som argument. Funksjonen returnerer en skive med alle byte av tegnene i den spesifiserte strengen.

La oss se på et eksempel:

pakkehoved
Importer "FMT"
func main ()
Str: = "Linuxhint"
byte_arr: = [] byte (str)
fmt.Println (byte_arr)

I eksemplet over definerer vi en variabel kalt “STR” med verdien “Linuxhint”.

Vi bruker deretter byte () -metoden for å konvertere strengen til en byte -matrise.

Koden over returnerer en utgang som:

$ go run string_to_byte.gå
[76 105 110 117 120 104 105 110 116]

Kopier streng til byte -skive

Vi kan også konvertere en streng til en byte ved å kopiere en streng til en byterskive. Vi oppnår denne ved hjelp av Copy () -metoden.

Kodebiten nedenfor viser hvordan du oppnår dette:

pakkehoved
Importer "FMT"
func main ()
copy_string ()

func copy_string ()
// tom skive
byte_slice: = make ([] byte, 10)
Str: = "Linuxhint"
str_copy: = kopi (byte_slice, str)
fmt.Println (str_copy)
fmt.Println (byte_slice)

I eksemplet over lager vi en tom skive ved hjelp av make -funksjonen.

Vi bruker deretter kopien () -metoden for å kopiere strengen til byte -skiven. Vi kan se antall byte kopiert til skiven ved hjelp av FMT.Println (str_copy).

For å se hele strengen i byte, bruk FMT.Println (byte_slice):

Et eksempelutgang er som vist:

9 // kopierte byte
[76 105 110 117 120 104 105 110 116 0] // byte skive

Konverter byte til streng

Den første metoden vi kan bruke for å konvertere en byte -matrise til en streng er Newbuffer () -metoden. Dette oppretter en ny buffer, og så kan vi bruke String () -metoden som vist i eksemplet nedenfor:

pakkehoved
import (
"byte"
"FMT"
)
func main ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
Str: = byte.Newbuffer (ARR).Streng ()
fmt.Println (str)

Vi starter med å lage en byte -matrise. Vi bruker deretter NewBuffer () -metoden for å lage en ny buffer og deretter bruke String () -metoden for å få strengutgangen.

Den resulterende funksjonen er som:

$ go run byte_to_string.gå
Linux

Konvertere byte til streng med skiver

En annen teknikk vi kan bruke for å konvertere en byte -matrise til streng er skiver. Et eksempel illustrerer hvordan du bruker denne metoden:

func skiver ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
STR: = String (arr [:])
fmt.Println (str)

Ovennevnte kode skal ta byte -matrisen og konvertere den til en streng.

Konverter byte til streng ved hjelp av Sprintf () -metoden

Sprintf () -funksjonen lar deg konvertere en byte -matrise til en streng. Tenk på eksemplet som er vist nedenfor:

func sprintf_method ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
STR: = FMT.Sprintf ("%S", ARR)
fmt.Println (str)

Ovennevnte metode skal konvertere byte -matrisen til en streng. Husk at denne metoden blir ansett som tregere sammenlignet med andre alternativer.

Konklusjon

I denne guiden utforsket vi verden av Go -programmeringsspråket og hvordan man konverterer en byte til en streng og omvendt.

Glad koding!