Primeri ulitkov Golang

Primeri Ulitkov Golang



Postopek spreminjanja podatkovnega tipa vrednosti iz enega tipa v drugega je znan kot pretvorba tipa, včasih tudi pretvorba tipa. Pretvorba tipov je v Go dosežena z eksplicitnimi pretvorbami tipov. Go podpira močno tipkanje. Tako moramo pri pretvarjanju med vrstami izrecno navesti naš cilj. To spodbuja varnost tipkanja in zmanjšuje verjetnost tipkarskih napak. V tem zapisu bomo raziskali oddajanje z različnimi vrstami v Go.

Primer 1: ulivanje osnovnega tipa Golang

Začnimo s primerom neposrednega in osnovnega pretvorbe v Go, ker potrebujemo pretvorbo tipov za spreminjanje vrste spremenljivke kjer koli.

paket glavni
uvoz (
'fmt'
)
funk glavni () {
je bil x int = 31
in := float64 ( x )
fmt . Println ( in )
}

Tukaj začnemo z glavno funkcijo tako, da deklariramo spremenljivko z imenom 'x' tipa 'int' in ji dodelimo vrednost 31. Nato se spremenljivka 'y' deklarira z uporabo skrajšanega operatorja dodelitve ':='. Vrsta »y« se samodejno določi iz izraza na desni strani, ki je rezultat pretvorbe »x« v »float64«. Torej je v tem programu vrednost 'x' pretvorjena v 'float64' in dodeljena 'y'.







Rezultati, pridobljeni iz osnovnega oddajanja v Go, so prikazani na naslednji način:





Primer 2: implicitno ulivanje tipa Golang

Implicitno prelivanje tipov med različnimi tipi ni dovoljeno. Go vsiljuje močno tipkanje, kar pomeni, da ne moremo neposredno dodeliti ali uporabiti vrednosti ene vrste kot druge vrste brez izrecne pretvorbe. V nadaljevanju poskušamo izvesti implicitno prelivanje, ki Go ustvari izjemo:





paket glavni
uvoz 'fmt'
funk glavni () {
je bil celo število int = 9 . 08
fmt . Printf ( 'Celo število je %g' , celo število )
}

Tukaj je koda, ki se začne s funkcijo main(), kjer je spremenljivka 'integer' deklarirana s tipom 'int'. Vrednost, ki je dodeljena spremenljivki 'celo število', je 9,08, kar je število s plavajočo vejico. Ker poskušamo dodeliti vrednost s plavajočo vejico neposredno celoštevilski spremenljivki, to povzroči napako neujemanja tipa. Nato uporabimo funkcijo »printf« iz paketa »fmt«, da natisnemo vrednost spremenljivke »integer« z uporabo določevalca formata »%g«.

Kot je bilo pričakovano, implicitno ulivanje tipa ni sprejemljivo v Golangu. Prejšnje implicitno ulivanje tipa ustvari to napako:



Primer 3: Eksplicitno prelivanje tipa Golang

Eksplicitna pretvorba tipa nam omogoča varno pretvorbo vrednosti med združljivimi tipi, medtem ko eksplicitno navaja namen. Zagotavlja, da se zavedamo pretvorbe tipa in pomaga preprečevati naključne napake tipa. Razmislite o naslednjem eksplicitnem ulivanju:

paket glavni
uvoz 'fmt'

funk glavni () {
je bil floatVal float32 = 6 . 75
je bil intVal int = int ( floatVal )
fmt . Printf ( 'Plavajoča vrednost je %g \n ' , floatVal )
fmt . Printf ( 'Cela vrednost je %d' , intVal )
}

Tukaj je spremenljivka »floatVal« ustvarjena s tipom »float32« in ji je dodeljena vrednost »6,75«. Nato je spremenljivka »intVal« deklarirana s tipom »int«. Za dodelitev vrednosti floatVal intVal se uporabi pretvorba tipa. Za pretvorbo floatVal v celoštevilsko vrednost se uporabi funkcija »int« s floatVal kot vhodom. Po tem “fmt.Printf(“Float Value is %g\n”, floatVal)” natisne vrednost floatVal z uporabo specifikatorja formata %g, ki je primeren za tiskanje vrednosti s plavajočo vejico. Medtem ko kodna vrstica »fmt.Printf(»Integer Value is %d«, intVal)« natisne vrednost intVal z uporabo specifikatorja formata %d, ki je primeren za tiskanje celih vrednosti.

Naslednji izhod ustvari vrednosti za floatVal in intVal po njegovem uvajanju:

Primer 4: Ulivanje vrste Golang za doseganje povprečja

Nato izvedemo ulivanje, da dobimo povprečno število iz danih vrednosti. Oglejmo si izvorno kodo, ki je na voljo v naslednjem:

paket glavni
uvoz 'fmt'
funk glavni () {
je bil skupaj int = 900
je bil Moja številka int = dvajset
je bil povprečje float32
povprečje = float32 ( skupaj ) / float32 ( Moja številka )
fmt . Printf ( 'Povprečje je = %f \n ' , povprečje )
}

Tukaj najprej deklariramo tri spremenljivke. »Total« je celoštevilska spremenljivka, ki je inicializirana z vrednostjo 900. »MyNumber« je celoštevilska spremenljivka, ki je inicializirana z vrednostjo 20. Izračunano povprečje se nato shrani v spremenljivko »povprečje« float32. Nato se poda povprečna formula za izvedbo izračuna. Za zagotovitev, da je deljenje opravljeno kot deljenje s plavajočo vejico, sta vrednosti »total« in »MyNumber« pretvorjeni v float32 s pretvorbo tipa. Izračunano povprečje je dodeljeno spremenljivki »povprečje«. Končno, niz zapisa »%f\n«, ki se uporablja v funkciji »printf«, določa, da je treba natisniti plavajočo vrednost, ki ji sledi znak za novo vrstico.

Končna vrednost kot povprečje je pridobljena po impliciranju pretvorbe tipa v prejšnji kodi:

Primer 5: Golang Int in String Type Casting

Poleg tega Go ponuja tudi pretvorbo med vrstama Int in String. To lahko dosežemo s funkcijo paketa strconv.

paket glavni
uvoz (
'fmt'
'strconv'
)
funk glavni () {
je bil str vrvica = '1999'
v , _ := strconv . napovednik ( s )
fmt . Println ( v )
je bil celo število int = 1999
toStr := strconv . utopljen ( celo število )

fmt . Println ( toStr )
}

Tukaj je koda, ki se začne z deklaracijo dveh spremenljivk. »Str« je spremenljivka niza, ki je inicializirana z vrednostjo »1999«, »integer« pa je celoštevilska spremenljivka, ki je inicializirana z vrednostjo »1999«. Po tem se funkcija »strconv.Atoi()« uporabi za pretvorbo niza »str« v vrednost celega števila. Vrnjena vrednost »v« predstavlja pretvorjeno celo število, prazen identifikator »_« pa se uporabi za prezrtje morebitne napake, ki jo vrne Atoi().

Nato se uporabi funkcija strconv.Itoa() za pretvorbo celega števila v vrednost niza. Vrnjena vrednost, ki je »toStr«, predstavlja pretvorjeni niz.

Izhod prikaže pretvorbo iz niza »1999« v celo število in nazaj v niz, ki ustvari izvirno vrednost »1999«:

Primer 6: Pretvorba vrste Golang med nizom in bajti

Poleg tega je ulivanje v Go mogoče izvesti tudi v vrstah nizov in bajtov. Naslednje kode prikazujejo pretvorbo med nizi in rezinami bajtov:

paket glavni
uvoz (
'fmt'
)
funk glavni () {
je bil mystr vrvica = 'Živijo'
je bil b1 [] bajt = [] bajt ( myStr )
fmt . Println ( b1 )
toString := vrvica ( b1 )
fmt . Println ( toString )
}

Tukaj sta spremenljivki najprej deklarirani kot 'myStr' in 'b1', ki sta inicializirani z določenimi vrednostmi. Nato izraz []byte(myStr) pretvori niz »myStr« v bajtno rezino s pomočjo pretvorbe tipa. Nastalo bajtno rezino dodeli spremenljivki 'b1'. Po tem izraz 'string(b1)' pretvori bajtno rezino b1 nazaj v niz s pomočjo pretvorbe tipa. Nastali niz dodeli spremenljivki »toString«.

Izhod prikazuje pretvorbo med nizom »Hey There« in njegovo ustrezno predstavitvijo bajtne rezine v naslednjem:

Primer 7: Pretvorba tipa Golang za pridobivanje kvadratnega korena

Zdaj izvajamo kasting v Go, da poiščemo rezultate kvadratnega korena. Koda je postavljena na naslednji način:

paket glavni
uvoz (
'fmt'
'matematika'
)
funk glavni () {
je bil n int = 177
je bil SqrtN float64
SqrtN = matematika . Sqrt ( float64 ( n ))
fmt . Printf ( 'Kvadratni koren %d je %.2f \n ' , n , SqrtN )
}

Tukaj je spremenljivka 'n' deklarirana kot int in dodeli vrednost '144'. Spremenljivka »SqrtN« je deklarirana kot float64 in shrani izračunani kvadratni koren iz »n«. Nato se uporabi funkcija math.Sqrt() za izračun kvadratnega korena iz »n«. Ker math.Sqrt() pričakuje argument float64, vrednost 'n' pa se pretvori v float64 z uporabo float64(n). Po tem niz oblikovanja »Kvadratni koren %d je %.2f\n« pokliče funkcijo »printf«, ki podaja celoštevilsko vrednost (%d) in vrednost s plavajočo vejico (%.2f). Specifikator natančnosti ».2« v »%.2f« zagotavlja, da je kvadratni koren natisnjen z dvema decimalnima mestoma.

Pridobi se naslednji rezultat, ki označuje kvadratni koren dane vrednosti:

Zaključek

Ulivanje v Go je obravnavano z različnimi primeri, ki so vsi izvršljivi. Upoštevajte, da je v Go pretvorba tipov eksplicitna, kar uveljavlja močno tipkanje ter spodbuja jasnost in zanesljivost kode.