30 Golang primjera programiranja za početnike

30 Golang Primjera Programiranja Za Pocetnike



Golang koji se također naziva Go programski jezik je programski jezik otvorenog koda koji je dizajnirao Google 2007. Verzija 1.0 ovog jezika objavljena je 2012. To je strukturirani programski jezik poput C i različitih vrsta aplikacija kao što su mrežne usluge, oblak aplikacije, web aplikacije itd. mogu se razviti Golang jezikom. Sadrži mnoge vrste paketa poput Pythona. Vrlo ga je lako naučiti, što ga čini popularnim za nove programere. 30 primjera programiranja Golanga objašnjeno je u ovom vodiču kako biste naučili Golang od osnova.

Preduvjeti:

Golang podržavaju različite vrste operativnih sustava. Način instaliranja Golanga na Ubuntu prikazan je u ovom dijelu vodiča. Izvedite sljedeće naredbe da ažurirate sustav i instalirate Golang na sustav prije vježbanja primjera u ovom vodiču.







$ sudo prikladno ažuriranje
$ sudo prikladan instalirati rasti-do

Pokrenite sljedeću naredbu da provjerite instaliranu verziju Golanga.



$ go verzija

Sadržaj:



  1. Zdravo zdravo svijete
  2. Golangove varijable niza
  3. Golang int u niz
  4. Golang niz za in t
  5. Golang ulančavanje nizova
  6. Golang višeredni niz
  7. Golang podijeljen niz
  8. Golang sprintf
  9. Golang enum
  10. Golang struktura
  11. golanski niz
  12. Golang setovi
  13. Golang za petlju
  14. Golang za domet
  15. Golang while petlja
  16. Golang nastavi
  17. Golang kućište prekidača
  18. Golang slučajni broj
  19. Golang spavanje
  20. zlatno vrijeme
  21. Golang uuid
  22. Golang čita datoteku
  23. Golang čita datoteku redak po redak
  24. Golang pisati u datoteku
  25. Golang provjeri postoji li datoteka
  26. Golan csv
  27. Golang yaml
  28. Golang http zahtjev
  29. Golang argumenti naredbenog retka
  30. Golang obrada pogrešaka


Zdravo zdravo svijete

The glavni paket Golang sadrži sve potrebne pakete za Golang programiranje i potreban je za početak izvršavanja Golang skripte. The fmt paket je potreban za uvoz za ispis formatiranog niza u terminalu. Stvorite Golang datoteku pomoću sljedeće skripte. Vrijednost niza, 'Hello World.' bit će ispisana u terminalu nakon izvršavanja skripte.





//Uvoz fmt paketa za ispis izlaza
uvoz 'fmt'

//Definirajte funkciju main() za početak izvršenja
funk glavni () {

//Ispiši jednostavnu poruku s novim retkom
fmt . Println ( 'Pozdrav svijete.' )

}

Pokrenite sljedeću naredbu da biste izvršili skriptu. Ovdje je skripta spremljena u datoteku example1, go.

$ ići trčati primjer1.ići

Pokrenite sljedeću naredbu za izradu binarne datoteke Golang datoteke.



$ idi izgradi primjer1.idi

Pokrenite sljedeću naredbu za pokretanje izvršne datoteke.

$ . / primjer1

Sljedeći izlaz će se pojaviti nakon izvršavanja gornjih naredbi,,

  p1

Idi na vrh


Golangove varijable niza

Varijable niza mogu se koristiti bez definiranja tipa podataka i s tipom podataka u Golangu. Stvorite Golang datoteku sa sljedećom skriptom koja će ispisati jednostavne podatke niza i podatke niza s varijablama niza. Upotreba Printf() i Println() funkcije su prikazane u skripti.

paket glavni
//Uvoz fmt paketa za ispis izlaza
uvoz 'fmt'

//Definirajte funkciju main().
funk glavni () {

//Ispis vrijednosti niza u novom retku
fmt . Printf ( 'Naučite Golang s LinuxHint.com. \n ' )

//Definirajte prvu varijablu niza
bio je str1 = 'Golang programiranje.'

//Ispis varijable bez novog retka
fmt . Printf ( 'Nauči %s' , str1 )

//Definirajte drugu varijablu niza
bio je str2 = 'lako za naučiti.'

//Ispis varijable s novim retkom
fmt . Println ( 'To je' , str2 )
}

Nakon izvršavanja gornje skripte pojavit će se sljedeći izlaz. Ovdje se ispisuje izlaz dva spojena niza.

  p2

Idi na vrh


Golang int u niz

The strconv.Choke() i strconv.FormatInt() funkcije se mogu koristiti za pretvaranje cijelog broja u vrijednost niza u Golangu. The strconv.Choke() koristi se za pretvaranje vrijednosti cijelog broja u niz brojeva. The strconv.FormatInt() koristi se za pretvaranje decimalnih cijelih vrijednosti u niz. Stvorite Golang datoteku sa sljedećom skriptom koja pokazuje način pretvaranja cijelog broja u niz u Golangu pomoću gore navedenih funkcija. Broj će biti uzet od korisnika i odgovarajuća vrijednost niza broja bit će ispisana kao izlaz.

//Dodajte glavni paket
paket glavni
//Uvoz paketa fmt i strconv
uvoz (
'fmt'
'strconv'
)

//Definirajte glavnu funkciju
funk glavni () {

//Deklarirajte cjelobrojnu varijablu
bio je n int
//Ispis poruke
fmt . Printf ( 'Unesite broj: ' )
//Uzimanje unosa od korisnika
fmt . Skenirati ( i n )

//Pretvori cijeli broj u niz pomoću funkcije Itoa().
pretvoriti1 := strconv . utopio se ( n )
fmt . Printf ( 'Pretvaranje cijelog broja u niz pomoću Itoa(): %s \n ' , pretvoriti1 )

//Pretvori cijeli broj u niz pomoću funkcije FormatInt().
pretvoriti2 := strconv . FormatInt ( int64 ( n ), 10 )
fmt . Printf ( 'Pretvaranje cijelog broja u niz pomoću FormatInt(): %s \n ' , pretvoriti2 )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Broj. 45 je pretvoreno u niz. “45”.

  p3

Idi na vrh


Golang niz u int

The strconv.Atoi() koristi se za pretvaranje niza u cijeli broj u Golangu. Uzima vrijednost niza koja će se pretvoriti u cijeli broj i vraća dvije vrste vrijednosti. Jedna vrijednost je cijeli broj ako je razgovor uspješan, a druga vrijednost je pogreška ako je razgovor neuspješan u suprotnom nula vrijednost će biti vraćena. Stvorite Golang datoteku sa sljedećom skriptom koja će pretvoriti niz vrijednosti niza u cijeli broj pomoću strconv.Atoi() funkcija. Vrijednost niza, “342” bit će pretvorena u broj 342 i ispisana nakon izvršenja.

//Dodajte glavni paket
paket glavni
//Uvoz paketa fmt i strconv
uvoz (
'fmt'
'strconv'
)

//Definirajte glavnu funkciju
funk glavni () {

//Deklarirajte string varijablu
str := '342'

//Pretvori niz u cijeli broj pomoću funkcije Atoi().
cijena , pogriješiti := strconv . prikolica ( str )

//provjeri grešku
ako pogriješiti == nula {
//Ispis pretvorene vrijednosti
fmt . Printf ( 'Cijena knjige je %d \n ' , cijena )
} drugo {
//Ispiši poruku greške
fmt . Println ( pogriješiti )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Vrijednost niza '342' ovdje je pretvorena u 342.

  p4

Idi na vrh


Golang ulančavanje nizova

Stvorite Golang datoteku sa sljedećom skriptom koja će povezati nizove s operatorom '+' pomoću funkcije Printf(). Funkcija Println() ovdje je korištena za ispis spojene vrijednosti niza pomoću operatora '+', a funkcija Printf() ovdje je korištena za ispis spojene vrijednosti niza pomoću specifikatora '%s'. U skripti su deklarirane dvije string varijable koje se kasnije spajaju.

//Dodajte glavni paket
paket glavni
//Uvoz fmt paketa za ispis izlaza
uvoz 'fmt'

//Definirajte glavnu funkciju
funk glavni () {

//Deklarirajte dvije string varijable
bio je str1 , str2 niz

//Dodjela vrijednosti niza
str1 = 'Golan'
str2 = 'Programiranje'

//Spajanje niza pomoću operatora '+'
fmt . Println ( 'Spojena vrijednost niza pomoću operatora '+':' , str1 + str2 )
//Spajanje niza pomoću '%s' specifikacije
fmt . Printf ( 'Vrijednost spojenog niza koristeći specifikator formata: %s%s \n ' , str1 , str2 )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p5

Idi na vrh


Golang višeredni niz

U sljedećem primjeru prikazana su tri različita načina ispisa višerednog teksta pomoću Golang skripte. Znak '\n' korišten je u prvoj varijabli niza za generiranje višerednog teksta. Povratne kvačice (`) korištene su u drugom nizu za ispis višerednog teksta. Povratne kvačice (`) s specifikatorima korištene su u trećem nizu za ispis višerednog teksta.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

//Definirajte glavnu funkciju
funk glavni () {

//Deklarirajte vrijednost niza s više reda sa znakom '\n'
str1 := 'Programiranje Golanga\je vrlo jednostavno \n učiti. \n \n '
fmt . Printf ( str1 )

//Deklarirajte vrijednost niza s više redaka s backticks(`)
str2 := `Uči
Golang
iz
LinuxHint
Blog.`

fmt . Printf ( '%s \n \n ' , str2 )

//Deklarirajte dvije vrijednosti niza
Jezik := 'golan'
programer := 'Google'
//Deklarirajte vrijednost niza s varijablama i povratnim oznakama
str3 := `%s
je
razvijena
po
%s.`

fmt . Printf ( str3 , Jezik , programer )
//Dodaj novi redak
fmt . Println ()
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Ovdje je ispisan izlaz triju varijabli niza koje sadrže višeredne vrijednosti niza.

  p6

Idi na vrh


Golang split string

Funkcija strings.Split() korištena je za razdvajanje podataka niza na temelju separatora. Sljedeća skripta će uzeti vrijednost niza od korisnika i podijeliti vrijednost niza na temelju dvotočke(:). Ukupan broj podijeljenih vrijednosti i prve dvije podijeljene vrijednosti bit će ispisani nakon izvršenja.

paket glavni
//Uvoz paketa fmt i nizova
uvoz (
'fmt'
'žice'
)

//Definirajte glavnu funkciju
funk glavni () {

//Deklarirajte string varijablu
bio je str niz
//Ispiši prompt poruku
fmt . Printf ( 'Unesite niz s dvotočkom(:)- ' )
//Uzimanje unosa od korisnika
fmt . Skenirati ( i str )

//Definirajte separator
separator := ':'
//Podijeli vrijednost niza
podijeljena_vrijednost := žice . Podjela ( str , separator )
//Izbroji broj podijeljenih vrijednosti
duljina := samo ( podijeljena_vrijednost )

//Ispiši broj podijeljenih vrijednosti
fmt . Printf ( 'Ukupan broj podijeljenih vrijednosti je %d \n ' , duljina )
//Ispiši podijeljene vrijednosti
fmt . Println ( 'Prva podijeljena vrijednost je' , podijeljena_vrijednost [ 0 ])
fmt . Println ( 'Druga podijeljena vrijednost je' , podijeljena_vrijednost [ 1 ])
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Ulazna vrijednost 'golang:google' podijeljena je na dva dijela na temelju dvotočke (:).

  p7

Idi na vrh


Golang sprintf

Funkcija Sprintf() koristi se u Golangu za pohranjivanje formatiranih vrijednosti niza u varijablu poput ostalih standardnih programskih jezika. Niz i varijabla cijelog broja deklarirani su u sljedećoj skripti. Vrijednosti ovih varijabli formatirane su i pohranjene u varijabli pomoću funkcije Sprintf().

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

//Definirajte glavnu funkciju
funk glavni () {

//Deklarirajte dvije varijable
bio je str niz
bio je na jedan int

//Dodijeli vrijednost niza
str = 'golan'
//Dodijeli vrijednost broja
na jedan = 2012

//Pohrani kombiniranu vrijednost niza u varijablu
kombinirana_str := fmt . Sprintf ( 'Prva verzija %s objavljena je u %d.' , str , na jedan )
//Ispis varijable
fmt . Printf ( 'Izlaz funkcije Sprintf(): \n %s \n ' , kombinirana_str )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p8

Idi na vrh


Golang enum

Enum ili enumerator korišten je u Golangu za deklariranje tipa podataka grupe povezanih konstantnih vrijednosti. Deklaracija tipa enum u Golangu razlikuje se od ostalih programskih jezika. Tip enuma od 12 vrijednosti je deklariran, a numerička vrijednost određene enum vrijednosti ispisana je kasnije.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

//Deklarirajte tip za pohranu vrijednosti mjeseca u broju (1-12)
tip Mjesec int

//Deklarirajte konstante za svaku mjesečnu vrijednost počevši od 1
konst (
siječanj mjesec = jota + 1
velj
ožujak
tra
svibanj
lipnja
srp
kolovoz
ruj
lis
nov
pro
)

//Deklarišemo glavnu funkciju
funk glavni () {
//Deklarirajte varijablu s mjesečnom vrijednošću
bio je M_broj = svibanj
//Ispis odgovarajuće brojčane vrijednosti mjeseca
fmt . Println ( 'Mjesečna vrijednost u broju je ' , M_broj )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Odgovarajuća brojčana vrijednost svibnja je 5.

  p9

Idi na vrh


Golang struktura

Struktura ili struktura koristi se u Golangu za deklariranje tipa koji sadrži različite tipove varijabli. Korisno je za pohranu tabličnih podataka ili više zapisa. U sljedećoj skripti deklarirana je strukturna varijabla od četiri elementa. Zatim su dodana dva zapisa korištenjem definirane struct varijable. Način ispisa vrijednosti strukture na različite načine prikazan je u zadnjem dijelu skripte.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

//Definirajte strukturu od četiri elementa
tip Proizvod strukturirati {
iskaznica niz
Ime niz
veličina niz
cijena int
}

funk glavni () {

//Deklarirajte prvu strukturnu varijablu
proizvod1 := Proizvod { 'p-1209' , 'HDD' , '5TB' , 80 }
//Deklarirajte drugu strukturnu varijablu
proizvod2 := Proizvod { 'p-7342' , 'Miš' , '' , petnaest }

//Ispis varijabli strukture
fmt . Println ( 'Prvi proizvod: ' , proizvod1 )
fmt . Println ( 'Drugi proizvod: ' , proizvod2 )

//Odvojeno ispis četiri vrijednosti prve strukturne varijable
fmt . Println ( 'Prvi detalji o proizvodu:' )
fmt . Println ( 'ISKAZNICA: ' , proizvod1 . iskaznica )
fmt . Println ( 'Ime: ' , proizvod1 . Ime )
fmt . Println ( 'Veličina: ' , proizvod1 . veličina )
fmt . Println ( 'Cijena: ' , proizvod1 . cijena )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p10

Idi na vrh


golanski niz

Varijabla niza koristi se u Golangu za pohranjivanje višestrukih vrijednosti određenog tipa podataka poput drugih standardnih programskih jezika. U skripti je prikazan način deklariranja i pristupa nizu string vrijednosti i nizu numeričkih vrijednosti.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

funk glavni () {

//Deklarirajte niz vrijednosti niza
str_arr := [ 4 ] niz { 'Google com' , 'ask.com' , 'bing.com' , 'vi.com' }
//Ispis niza nizova
fmt . Println ( 'Vrijednosti niza nizova su: ' , str_arr )
//Ispis 3. elementa niza
fmt . Println ( 'Treća vrijednost niza je' , str_arr [ 2 ])

//Deklarirajte niz numeričkih vrijednosti
int_arr := [ 6 ] int { 65 , 3. 4 , 12 , 81 , 52 , 70 }
//Ispis niza cijelih brojeva
fmt . Println ( 'Vrijednosti niza cijelih brojeva su: ' , int_arr )
//Ispis 4. elementa niza
fmt . Println ( 'Četvrta vrijednost niza je' , int_arr [ 3 ])
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p11

Idi na vrh


Golang set

Skup je još jedna struktura podataka Golanga za pohranu zbirke različitih vrijednosti. Koristi se za pohranjivanje jedinstvenih vrijednosti u objektu. Golang nema ugrađenu skupnu strukturu podataka kao drugi programski jezici. Ali ova se značajka može implementirati korištenjem prazne strukture{} i karte. U sljedećoj skripti, varijabla skupa nizova deklarirana je pomoću mape s praznom strukturom. Zatim su dodane tri vrijednosti, jedna vrijednost je izbrisana, a jedna vrijednost je ponovno dodana u skup. Vrijednosti skupa tiskane su zajedno i zasebno.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

funk glavni () {
//Definirajte skup nizova
samo := karta [ niz ] strukturirati {}{}
//Umetnite tri elementa u skup pomoću prazne strukture
samo [ 'Ići' ] = strukturirati {}{}
samo [ 'Bash' ] = strukturirati {}{}
samo [ 'Piton' ] = strukturirati {}{}

//Ispis trenutno postojećih elemenata skupa
fmt . Println ( samo )

//Uklanjanje elementa iz skupa
izbrisati ( samo , 'Piton' )

//Dodajte novi element skupu
samo [ 'Java' ] = strukturirati {}{}

//Ispis postavljenih vrijednosti nakon uklanjanja i dodavanja elementa
fmt . Println ( samo )

fmt . Printf ( ' \n Postavljene vrijednosti su: \n ' )
//Ispis svakog elementa skupa zasebno
za l := domet samo {
fmt . Println ( l )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p12

Idi na vrh


Golang za petlju

For petlja se može koristiti na različite načine i za različite svrhe u Golangu. Upotreba triju izraza za petlju prikazana je u sljedećoj skripti. Petlja će se ponoviti 5 puta kako bi se dobilo 5 ulaznih vrijednosti, a zbroj tih ulaznih vrijednosti bit će ispisan kasnije.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

funk glavni () {

//Deklarirajte cjelobrojnu varijablu
bio je broj int
//Deklarirajte varijablu za pohranu vrijednosti zbroja
bio je iznos = 0
//Definirajte for petlju
za n := 1 ; n < = 5 ; n ++ {
//Ispiši prompt poruku
fmt . Printf ( 'Unesite broj:' )
//Uzimanje unosa od korisnika
fmt . Skenirati ( i broj )
//Dodajte ulazni broj s varijablom zbroja
iznos = iznos + broj
}
//Ispis rezultata zbrajanja
fmt . Printf ( 'Zbroj pet ulaznih vrijednosti je %d \n ' , iznos )

}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Zbroj 6, 3, 4, 7 i 9 je 29.

  p13

Idi na vrh


Golang za domet

Raspon se koristi s for petljom u Golangu za pristup nizu, nizu i mapi. Način pristupa nizu nizova pomoću for petlje s rasponom prikazan je u sljedećoj skripti. Prva for petlja će ispisati samo vrijednosti niza, a druga for petlja će ispisati indekse i vrijednosti niza.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

funk glavni () {

//Deklarirajte niz nizova
cvijeće := [ 4 ] niz { 'Ruža' , 'Ljiljan' , 'Dalia' , 'Sunčani cvijet' }

fmt . Println ( 'Vrijednosti polja su:' )
//Ispis vrijednosti polja
za _ , val := domet cvijeće {
fmt . Println ( val )
}

fmt . Println ( 'Indeksi i vrijednosti polja su:' )
//Ispis vrijednosti polja na temelju indeksa
za u , val := domet cvijeće {
fmt . Printf ( '%d := %s \n ' , u + 1 , val )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p14

Idi na vrh


Golang while petlja

Golang nema while petlju kao drugi programski jezici. Međutim, značajka while petlje može se implementirati u Golangu korištenjem for petlje. Način implementacije while petlje korištenjem for petlje prikazan je u sljedećoj skripti. For petlja će se ponoviti 4 puta i uzeti će četiri broja. Zbroj ovih brojeva s razlomkom bit će ispisan kasnije.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'


funk glavni () {
brojač := 1
iznos := 0 . 0
bio je broj plovak64
za brojač < = 4 {
//Ispiši prompt poruku
fmt . Printf ( 'Unesite broj: ' )
//Uzimanje unosa od korisnika
fmt . Skenirati ( i broj )
//Dodajte ulazni broj s varijablom zbroja
iznos = iznos + broj
//Povećaj brojač za 1
brojač ++
}
//Ispis rezultata zbrajanja
fmt . Printf ( 'Zbroj četiri ulazne vrijednosti je %0.2f \n ' , iznos )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Zbroj 6,8, 3,2, 8,5 i 4,9 je 23,40.

  p15

Idi na vrh


Golang nastavi

Naredba continue koristi se u bilo kojoj petlji za izostavljanje određenih izjava na temelju uvjeta. U sljedećoj skripti, for petlja je korištena za ponavljanje petlje koja će izostaviti vrijednosti druge i četvrte vrijednosti niza pomoću naredbe continue.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'


funk glavni () {
brojač := 1
iznos := 0 . 0
bio je broj plovak64
za brojač < = 4 {
//Ispiši prompt poruku
fmt . Printf ( 'Unesite broj: ' )
//Uzimanje unosa od korisnika
fmt . Skenirati ( i broj )
//Dodajte ulazni broj s varijablom zbroja
iznos = iznos + broj
//Povećaj brojač za 1
brojač ++
}
//Ispis rezultata zbrajanja
fmt . Printf ( 'Zbroj četiri ulazne vrijednosti je %0.2f \n ' , iznos )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p16

Idi na vrh


Golang kućište prekidača

Naredba switch-case u Golangu slična je ostalim programskim jezicima, ali nije potrebna naredba break sa svakom naredbom case u Golangu. Način definiranja višestrukih velikih i malih vrijednosti unutar bloka prekidača prikazan je u sljedećem primjeru.

paket glavni
//Uvoz fmt paketa
uvoz 'fmt'

funk glavni () {

bio je n int
//Ispiši prompt poruku
fmt . Printf ( 'Unesite mjesečnu vrijednost u broju: ' )
//Uzimanje unosa od korisnika
fmt . Skenirati ( i n )

//Ispis poruke na temelju odgovarajuće veličine slova
sklopka n {
slučaj 1 , 2 , 3 , 4 :
fmt . Println ( 'Zimski semestar.' )

slučaj 5 , 6 , 7 , 8 :
fmt . Println ( 'Ljetni semestar.' )

slučaj 9 , 10 , jedanaest , 12 :
fmt . Println ( 'Jesenski semestar.' )

zadano :
fmt . Println ( 'Mjesečna vrijednost je izvan raspona.' )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p17

Idi na vrh


Golang slučajni broj

Paket math/rand korišten je u Golangu za generiranje nasumičnih brojeva. Način generiranja četiri vrste slučajnih brojeva prikazan je u sljedećoj skripti. Funkcija rand.Int() koristi se za generiranje dugog cijelog slučajnog broja. Funkcija rand.Intn(n) koristi se za generiranje slučajnog cijelog broja određenog raspona, a najveća vrijednost bit će proslijeđena kao vrijednost argumenta funkcije. 999 postavljeno je kao vrijednost argumenta u skripti. Funkcija rand.Float32() koristi se za generiranje kratkog frakcijskog slučajnog broja, a funkcija rand.Float64() koristi se za generiranje dugog frakcijskog slučajnog broja.

//Dodaj glavni paket
paket glavni
//Uvoz potrebnih modula
uvoz (
'fmt'
'vrijeme'
'matematika/rand'
)

funk glavni () {
//Postavi početnu vrijednost za generiranje slučajnog broja
rand . Sjeme ( vrijeme . Sada () . UnixNano ())
//Ispis generiranog slučajnog cijelog broja
fmt . Println ( 'Nasumična vrijednost cijelog broja: ' , rand . Int ())
//Ispiši nasumični cijeli broj unutar 999
fmt . Println ( 'Nasumična vrijednost cijelog broja s rasponom: ' , rand . Int ( 999 ))
//Ispiši slučajni 32-bitni float
fmt . Println ( 'Nasumična 32-bitna float vrijednost: ' , rand . Plutanje32 ())
//Ispiši slučajni 64-bitni float
fmt . Println ( 'Nasumična 64-bitna float vrijednost: ' , rand . Float64 ())
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p18

Idi na vrh


Golang spavanje

Funkcija time.Sleep() koristi se u Golangu za pauziranje izvršenja skripte na određeno razdoblje. Sljedeća skripta izračunat će prosjek tri broja i pričekati 3 sekunde prije prekida skripte.

//Dodaj glavni paket
paket glavni
//Uvezi potrebne pakete
uvoz (
'fmt'
'vrijeme'
)
funk glavni () {

fmt . Println ( 'Počnite izvršavati skriptu...' )
//Definirajte tri varijable
a := 40
b := 30
c := 29
//Ispis varijabli
fmt . Printf ( 'Tri broja su: %d, %d, %d \n ' , a , b , c )
fmt . Println ( 'Izračunavanje prosjeka tri broja...' )
prosj := ( a + b + c ) / 3
//Odgoda za 3 sekunde
vrijeme . Spavati ( 3 * vrijeme . Drugi )
//Ispiši rezultate
fmt . Printf ( 'Prosječna vrijednost je %d \n ' , prosj )
fmt . Println ( 'Program prekinut.' )
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p19

Idi na vrh


zlatno vrijeme

Paket vremena koristi se u Golangu za čitanje trenutnog datuma i vremena. Ovaj paket ima mnoge metode i svojstva za čitanje datuma i vremena na različite načine. Datum i vrijeme, 'Mon Jan 2 15:04:05 -0700 MST 2006' koristi se kao referentna vrijednost u Golangu za pristup datumu i vremenu. Upotreba vremenskog paketa prikazana je u sljedećem primjeru.

paket glavni
//Uvezi potrebne pakete
uvoz (
'fmt'
'vrijeme'
)

funk glavni () {
//Pročitajte trenutni datum i vrijeme
danas := vrijeme . Sada ()
//Ispis trenutnog datuma
fmt . Printf ( 'Danas je %s. \n ' , danas . Format ( '2. siječnja 2006.' ))
//Ispis trenutnog datuma i vremena
fmt . Printf ( 'Trenutni datum i vrijeme su %s \n .' , danas . Format ( vrijeme . RFC1123 ))
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

Idi na vrh


Golang uuid

UUID ili Univerzalno jedinstveni identifikator može se generirati Golang skriptom. To je 128-bitna jedinstvena vrijednost za identifikaciju računalnog sustava. Morate preuzeti uuid s github.com/google/uuid prije izvršavanja sljedeće skripte.

Idite u početni direktorij i pokrenite sljedeće naredbe za preuzimanje potrebnog paketa za generiranje uuid pomoću Golang skripte.

$ go mod init uuid
$ idite uzmite github.com / google / uuid

U sljedećoj skripti prvi uuid generira se pomoću funkcije uuid.New() koja vraća jedinstveni identifikator. Drugi uuid generira funkcija uuid.NewUUID() koja vraća dvije vrijednosti. Vrijednost sadrži jedinstveni identifikator, a druga vrijednost sadrži poruku o pogrešci ako postoji.

paket glavni
//Uvezi potrebne pakete
uvoz (
'fmt'
'github.com/google/uuid'
)
funk glavni () {

//Generirajte jedinstveni ID pomoću funkcije New().
noviID := uuid . Novi ()
fmt . Printf ( 'Generirani prvi UUID je %s. \n ' , noviID )

//Generiraj jedinstveni ID pomoću funkcije NewUUID().
noviID , pogriješiti := uuid . NoviUUID ()
//Provjeri grešku
ako pogriješiti == nula {
fmt . Printf ( 'Generirani drugi UUID je %s. \n ' , noviID )
} drugo {
fmt . Println ( pogriješiti )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p21

Idi na vrh


Golang čita datoteku

The io/ioutil paket Golang se koristi za čitanje sadržaja datoteke. Funkcija ReadFile() ovog paketa čita cijeli sadržaj datoteke. Ova funkcija vraća puni sadržaj datoteke u varijablu ako datoteka postoji, inače će se vratiti poruka o pogrešci. Način čitanja punog sadržaja postojeće tekstualne datoteke prikazan je u sljedećoj skripti.

//Dodaj glavni paket
paket glavni
//Uvezi potrebne pakete
uvoz (
'io/ioutil'
'fmt'
'log'
)

funk glavni () {

//Čitanje tekstualne datoteke
tekst , pogriješiti := ioutil . ReadFile ( 'Jezici.txt' )
//Provjeri grešku
ako pogriješiti == nula {
fmt . Printf ( 'Sadržaj datoteke: \n \n ' )
fmt . Println ( niz ( tekst ))
} drugo {
log . Fatalf ( 'Pogreška čitanja datoteke: %v' , pogriješiti )
}

}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p22

Idi na vrh


Golang čita datoteku redak po redak

Paket “bufio” Golanga koristi se za čitanje sadržaja datoteke red po red. U sljedećoj skripti bufio.NewScanner() korišten je za stvaranje objekta za čitanje datoteke. Zatim, funkcija Scan() korištena je s petljom za čitanje i ispis svakog retka datoteke.

//Dodaj glavni paket
paket glavni
//Uvezi potrebne pakete
uvoz (
'fmt'
'vas'
'bufio'
)
funk glavni () {

//Otvori tekstualnu datoteku za čitanje
fh , pogriješiti := vas . Otvoren ( 'Jezici.txt' )
//Provjeri grešku
ako pogriješiti == nula {
//Skeniraj sadržaj datoteke
čitati := bufio . NewScanner ( fh )
//Pročitajte datoteku red po red
za čitati . Skenirati () {
fmt . Println ( čitati . Tekst ())
}
} drugo {
fmt . Println ( pogriješiti )
}
//Zatvori datoteku
odgoditi fh . Zatvoriti ()
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p23

Idi na vrh


Golang pisati u datoteku

The vas paket Golanga koristi se za otvaranje datoteke za pisanje i WriteString() funkcija se koristi za pisanje sadržaja u datoteku. Način stvaranja i pisanja tekstualne datoteke od tri retka je pomoću vas paket.

paket glavni
//Uvezi potrebne pakete
uvoz (
'fmt'
'vas'
)

funk glavni () {

//Otvori datoteku za pisanje
fh , pogreška1 := vas . Stvoriti ( 'items.txt' )
//Provjeri grešku pri stvaranju datoteke
ako pogreška1 == nula {
//Zapiši u datoteku
_ , pogreška2 := fh . WriteString ( 'Olovka \n Olovka \n Vladar \n ' )
//Provjeri grešku pri pisanju datoteke
ako pogreška2 != nula {
fmt . Println ( 'Došlo je do pogreške pri pisanju datoteke. \n ' )
}
} drugo {
fmt . Println ( 'Došlo je do pogreške pri stvaranju datoteke. \n ' )
}
//Zatvori datoteku
odgoditi fh . Zatvoriti ()
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz. Izlaz pokazuje da je datoteka items.txt uspješno kreirana.

  p24

Idi na vrh

Golang provjerava postoji li datoteka

The vas paket Golanga može se koristiti za provjeru postojanja datoteke. U sljedećoj skripti, putanja datoteke bit će preuzeta iz skripte. Ako staza ne postoji tada će funkcija os.State() vratiti os.ErrNotExist greška.

paket glavni
//Uvoz potrebnog modula
uvoz (
'greške'
'fmt'
'vas'
)

funk glavni () {
bio je put datoteke niz
fmt . Printf ( 'Unesite postojeći naziv datoteke: ' )
//Uzimite putanju datoteke od korisnika
fmt . Skenirati ( i put datoteke )
//Provjeri put datoteke
_ , greška := vas . Stat ( put datoteke )

//Provjeri izlaz os.Stat
ako ! pogreške . Je ( greška , vas . ErrNotExist ) {
fmt . Println ( 'Datoteka je pronađena.' )
} drugo {
fmt . Println ( 'Datoteka nije pronađena.' )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p25

Idi na vrh


Golan csv

The “kodiranje/csv” paket se koristi u Golangu za čitanje sadržaja CSV datoteke. The csv.NewReader() funkcija se koristi za čitanje CSV datoteke. Stvorite CSV datoteku prije izvršavanja skripte iz ovog primjera. Evo, kupci.csv datoteka korištena je za prikaz načina čitanja CSV datoteke.

paket glavni
//Uvezi potrebne pakete
uvoz (
'kodiranje/csv'
'fmt'
'vas'
)

funk glavni () {
//Otvorite CSV datoteku za čitanje
fh , pogriješiti := vas . Otvoren ( 'customers.csv' )
//Provjeri grešku
ako pogriješiti != nula {
fmt . Println ( pogriješiti )
} drugo {
//Stvorite objekt za čitanje CSV datoteke
skener := csv . NewReader ( fh )
//Pročitaj sve zapise CSV datoteke
zapisa , _ := skener . ReadAll ()
//Pročitajte CSV datoteku red po red
za _ , r := domet zapisa {
za _ , c := domet r {
fmt . Printf ( '%s,' , c )
}
fmt . Println ()
}
}
//Zatvori datoteku
odgoditi fh . Zatvoriti ()
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p26

Idi na vrh


Golang yaml

The yaml.Marshal() funkcija se koristi u Golangu za čitanje sadržaja yaml podataka. Morate preuzeti yaml paket za korištenje yaml.Marshal() . Idite u početni direktorij i pokrenite sljedeću naredbu za preuzimanje datoteke yaml paket.

$ idi po < a href = 'http://gopkg.in/yaml.v2' > gopkg.in / yaml.v2 a >

U sljedećoj skripti deklarirana je strukturna varijabla od četiri elementa koja je kasnije korištena za definiranje yaml objekta s podacima. Zatim, funkcija yaml.Marshal() korištena je za pristup yaml podacima.

paket glavni
//Uvezi potrebne pakete
uvoz (
'fmt'
'gopkg.in/yaml.v2'
)

//Deklarirajte strukturu od 4 elementa
tip Knjiga strukturirati {
Titula niz
Autor niz
Objavljivanje niz
Cijena niz
}

funk glavni () {

//Kreirajte objekt strukture
knjiga1 := Knjiga {
Titula : 'Učenje Go' ,
Autor : 'John Bodner' ,
Objavljivanje : 'O'Relly' ,
Cijena : '$39' ,
}

//Pročitajte yaml podatke na temelju strukture
y_podaci , pogriješiti := yaml . Marshall ( &knjiga1 )

//Provjeri grešku
ako pogriješiti == nula {
//Ispiši yaml podatke
fmt . Println ( niz ( y_podaci ))
} drugo {
fmt . Printf ( 'Pogreška tijekom marshalinga. %v' , pogriješiti )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p27

Idi na vrh


Golang http zahtjev

The net/http paket Golanga koristi se za slanje http zahtjeva na web mjesto. Za slanje zahtjeva koristi se funkcija http.Get(). Vraća odgovor sa stranice ili poruku o pogrešci. Način slanja http zahtjeva web stranici, https://example.com je prikazano u sljedećoj skripti.

paket glavni
//Uvezi potrebne pakete
uvoz (
'fmt'
'net/http'
)

funk glavni () {
//Pošalji GET zahtjev na web stranicu
res , pogriješiti := http . Dobiti ( 'https://example.com' )
//Provjeri grešku
ako pogriješiti == nula {
//Ispiši odgovor koji je poslala web stranica
fmt . Println ( res )
} drugo {
//Ispiši poruku greške
fmt . Println ( pogriješiti )
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p28

Idi na vrh


Golang argumenti naredbenog retka

Vrijednosti koje se prosljeđuju u vrijeme izvođenja skripte nazivaju se vrijednostima argumenata naredbenog retka. Os paket se koristi za čitanje vrijednosti argumenata naredbenog retka u Golangu. Vrijednosti argumenata pohranjene su u polju Args[]. Petlja for s rasponom korištena je u skripti za ispis vrijednosti argumenata bez naziva skripte u svakom retku.

paket glavni
//Uvozi potrebne pakete
uvoz (
'fmt'
'vas'
)

funk glavni () {

fmt . Println ( 'Sve vrijednosti argumenata su:' )
//Ispis svih vrijednosti argumenata s nazivom skripte
fmt . Println ( vas . Args )

fmt . Println ( 'Vrijednosti argumenata:' )
//Ispis svih vrijednosti argumenata bez naziva skripte
za u , _ := domet vas . Args {
ako u == 0 {
nastaviti
}
fmt . Println ( vas . Args [ u ])
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p29

Idi na vrh


Golang obrada grešaka

Golang nema try-catch blok kao drugi programski jezici. Međutim pogreške paket se može koristiti u Golangu za obradu pogrešaka u skripti. U sljedećoj skripti od korisnika će se uzeti cijeli broj. Ako korisnik uzme negativan broj, ispisat će se poruka o pogrešci. The pogreške.Novo() ovdje je korištena funkcija za generiranje poruke o pogrešci.

paket glavni
//Uvezi potrebne pakete
uvoz (
'greške'
'fmt'
)

funk glavni () {

bio je n int
fmt . Printf ( 'Unesite broj: ' )
fmt . Skenirati ( i n )

//Provjeri ulaznu vrijednost
proizlaziti , pogriješiti := Pozitivan ( n )

//Provjeri grešku
ako pogriješiti != nula {
fmt . Println ( pogriješiti )
} drugo {
fmt . Printf ( '%d %s \n ' , n , proizlaziti )
}
}

///Definirajte funkciju za provjeru pozitivnog broja
funk Pozitivan ( na jedan int ) ( niz , greška ) {
ako broj < 0 {
povratak '' , pogreške . Novi ( 'Upišite pozitivan broj.' )
} drugo {
povratak 'broj je pozitivan.' , nula
}
}

Nakon izvršavanja skripte pojavit će se sljedeći izlaz.

  p30

Idi na vrh

Zaključak:

Golang je sada popularan programski jezik koji ima mnogo korisnih paketa poput programskog jezika Python. Svaki korisnik početnik može naučiti Golang kao prvi programski jezik jer ga je vrlo lako naučiti. Osnovnih 30 primjera Golanga objašnjeno je u ovom vodiču za učenje Golanga od početka i učenici će moći pisati programe na Golangu. Jedno od glavnih ograničenja ovog jezika je to što ne sadrži značajke objektno orijentiranog programiranja, ali je dobar za učenje strukturiranog programiranja.