Site Overlay

Az első programod

Hagyományosan az első programot, amit bármilyen programozási nyelven írsz, “Hello World” programnak hívják – egy olyan program, amely egyszerűen Hello World-t ad ki a terminálra. Írjunk egyet a Go segítségével.

Először is hozzunk létre egy új mappát, ahol a programunkat tárolhatjuk. Hozzunk létre egy ~/src/golang-book/chapter2 nevű mappát. (Ahol a ~ a home könyvtáradat jelenti) A terminálról ezt a következő parancsok beírásával tudod megtenni:

mkdir src/golang-bookmkdir src/golang-book/chapter2

A szövegszerkesztővel írjuk be a következőket:

package mainimport "fmt"// this is a commentfunc main() { fmt.Println("Hello World")}

Győződj meg róla, hogy a fájlod megegyezik az itt láthatóval, és mentsd el main.go néven az imént létrehozott mappába. Nyissunk egy új terminált, és írjuk be a következőt:

cd src/golang-book/chapter2go run main.go

A terminálban meg kell jelenjen a Hello World. A go run parancs átveszi az egymást követő fájlokat (szóközökkel elválasztva), összeállítja őket egy ideiglenes könyvtárba mentett futtatható állományba, majd lefuttatja a programot. Ha nem látta megjelenítve a Hello World parancsot, akkor lehet, hogy hibát követett el a program beírásakor. A Go fordító ad tippeket arra vonatkozóan, hogy hol van a hiba. Mint a legtöbb fordítóprogram, a Go fordító is rendkívül pedáns, és nem tolerálja a hibákat.

Hogyan olvassunk el egy Go programot

Nézzük meg ezt a programot részletesebben. A Go programokat felülről lefelé, balról jobbra olvassuk. (Mint egy könyvben) Az első sorban ez áll:

package main

Ez az úgynevezett “csomag deklaráció”. Minden Go programnak egy csomagdeklarációval kell kezdődnie. A csomagok a Go módszere a kód szervezésére és újrafelhasználására. A Go programoknak két típusa van: a futtatható programok és a könyvtárak. A végrehajtható programok azok a fajta programok, amelyeket közvetlenül a terminálból futtathatunk. (Windowsban .exe végződéssel végződnek) A könyvtárak olyan kódgyűjtemények, amelyeket összecsomagolunk, hogy más programokban használhassuk őket. A könyvtárakat később részletesebben is meg fogjuk vizsgálni, egyelőre csak arra ügyeljünk, hogy ez a sor szerepeljen minden programban, amit írunk.

A következő sor egy üres sor. A számítógépek az újsorokat egy speciális karakterrel (vagy több karakterrel) jelölik. Az újsorokat, a szóközöket és a tabulátorokat whitespace-nek nevezzük (mivel nem láthatjuk őket). A Go-t többnyire nem érdekli a whitespace, mi használjuk, hogy könnyebben olvashatóvá tegyük a programokat. (Ezt a sort eltávolíthatnánk, és a program pontosan ugyanúgy viselkedne)

Aztán ezt látjuk:

import "fmt"

A import kulcsszóval más csomagokból származó kódot vonunk be a programunkba. A fmt csomag (a format rövidítése) a bemenet és a kimenet formázását valósítja meg. Tekintettel arra, amit az imént tanultunk a csomagokról, mit gondolsz, mit tartalmaznának a fmt csomag fájljai a tetejükön?

Megjegyezzük, hogy a fenti fmt idézőjelekkel van körülvéve. Az ilyen kettős idézőjelek használata “string literal” néven ismert, ami egyfajta “kifejezés”. A Go nyelvben a karakterláncok karakterek (betűk, számok, szimbólumok, …) meghatározott hosszúságú sorozatát jelentik. A stringeket részletesebben a következő fejezetben ismertetjük, de most a fontos dolog, amit szem előtt kell tartanunk, hogy a nyitó " karaktert végül egy másik " karakternek kell követnie, és minden, ami a kettő között van, benne van a stringben. (Maga a " karakter nem része a karakterláncnak)

A //-vel kezdődő sort nevezzük megjegyzésnek. A megjegyzéseket a Go fordítóprogram figyelmen kívül hagyja, és a saját érdekedben vannak ott (vagy bárki más veszi át a programod forráskódját). A Go két különböző stílusú megjegyzést támogat: A // kommenteket, amelyekben a // és a sor vége közötti összes szöveg a komment része, és a /* */ kommenteket, amelyekben minden, ami a *-ak között van, a komment része. (És több sort is tartalmazhat)

Ezek után egy függvény deklaráció következik:

func main() { fmt.Println("Hello World")}

A függvények a Go program építőkövei. Vannak bemeneteik, kimeneteik és egy sor utasításnak nevezett lépéssorozatuk, amelyeket sorrendben hajtanak végre. Minden függvény a func kulcsszóval kezdődik, amelyet a függvény neve (ebben az esetben main), egy nulla vagy több “paraméterből” álló, zárójelekkel körülvett lista, egy opcionális visszatérési típus és egy “test” követ, amelyet szögletes zárójelek vesznek körül. Ennek a függvénynek nincsenek paraméterei, nem ad vissza semmit, és csak egy utasítással rendelkezik. A main név azért különleges, mert ez az a függvény, amelyet a program végrehajtásakor meghívunk.

A programunk utolsó darabja ez a sor:

 fmt.Println("Hello World")

Ez az utasítás három összetevőből áll. Először is elérünk egy másik függvényt a fmt csomagon belül, amelynek a neve Println (ez a fmt.Println darab, a Println jelentése Print Line). Ezután létrehozunk egy új karakterláncot, amely Hello World-t tartalmaz, és meghívjuk (más néven hívjuk vagy végrehajtjuk) ezt a függvényt a karakterlánccal, mint első és egyetlen argumentummal.

Ezzel a ponttal már sok új terminológiát láttunk, és lehet, hogy egy kicsit túlterheltek vagyunk. Néha hasznos, ha szándékosan hangosan felolvassuk a programunkat. Az imént írt programunk egyik felolvasása így hangozhat:

Készítsünk egy új futtatható programot, amely hivatkozik a fmt könyvtárra, és tartalmaz egy main nevű függvényt. Ez a függvény nem fogad el argumentumokat, nem ad vissza semmit, és a következőket teszi: Hozzáfér a fmt csomagban található Println függvényhez, és egy argumentummal – a Hello World karakterlánccal – hívja meg.

A Println függvény végzi az igazi munkát ebben a programban. Többet megtudhatsz róla, ha a terminálodba beírod a következőt:

godoc fmt Println

Egyebek mellett ezt kell látnod:

Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands and a newline is appended. It returns the number of bytes written and any write error encountered.

A Go egy nagyon jól dokumentált programozási nyelv, de ezt a dokumentációt nehéz lehet megérteni, hacsak nem vagy már jártas a programozási nyelvekben. Mindazonáltal a godoc parancs rendkívül hasznos, és jó kiindulópont, ha kérdésed van.

Visszatérve a szóban forgó függvényhez, ez a dokumentáció azt mondja, hogy a Println függvény azt küldi a standard kimenetre – a terminál kimenete, amelyben dolgozol -, amit megadsz neki. Ez a függvény okozza a Hello World megjelenítését.

A következő fejezetben a típusok megismerésével azt vizsgáljuk meg, hogyan tárolja és reprezentálja a Go az olyan dolgokat, mint a Hello World.

Problémák

  • Mi a szóköz?

  • Mi a megjegyzés? Milyen kétféleképpen írhatunk megjegyzést?

  • A programunk package main-mal kezdődött. Mivel kezdődnének a fmt csomagban lévő fájlok?

  • A fmt csomagban definiált Println függvényt használtuk. Ha a os csomagban található Exit függvényt akarnánk használni, mit kellene tennünk?

  • Módosítsuk az általunk írt programot úgy, hogy a Hello World helyett Hello, my name is-t írjon ki, amelyet a neved követ.

← Previous Index

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.