Sadə Go proqramını necə yazaq?

Bu məqalədə sadə Golang proqramının hansı strukturda yazıldığını gözdən keçirib “Salam Dünya” proqramını icra edəcəyik.

Elnur Mammadli
PASHA Bank
3 min readApr 5, 2020

--

Go proqramı nədir?

Go proqramı .go uzantısında olan sadə UTF-8 mətn faylıdır. Siz sadə mətn redaktorları vasitəsilə Go proqramı tərtib edə bilərsiniz. Bunlara nümunə olaraq VSCode Sublime-ı göstərmək olar. Həmçinin terminal mətn redaktorları olan VimNano da istifadə edərək Go proqramı tərtib etmək mümkündür.

💡 Əgər siz mətn redaktoru olaraq VSCode istifadə edirsinizsə onda vscode-go əlavəsini (extension) öz redaktorunuza yükləyə bilərsiniz.

Müqəddimə

İlk Golang proqramını yazmaq üçün əvvəlcə siz öz əməliyyat sisteminizə uyğun Go versiyasını yükləməlisiniz. Bunu aşağıdakı linkləri izliyərək edə bilərsiniz.

Go proqramının quruluşu

Hər bir Go proqramı bir paket daxilində olmalıdır. Müstəqil icra oluna bilən bir Go proqramı əsas paket(main package) daxilində əsas icra edici funksiyaya (main function) sahib olmalıdır. Main function Go proqramının giriş nöqtəsidir.

💡 Bağımsız(standalone) icra oluna bilən Go proqramını go build əmri ilə icra oluna bilən ikili fayl halına gətirə bilərsiz və ya go run əmri ilə icra edə bilərsiniz.

package mainimport "fmt"func main() {
fmt.Println("Salam Dünya!")
}

Yuxarıdakı proqram icra oluna bilən bir proqram olduğuna görə ilk sətrdə əsas paket olmağı qeyd olunmuşdur. Sonrakı sətrdə Go standart kitabxanasından “fmt” paketi import edilmişdir. Bir paketi proqramın içinə daxil etmək üçün import açar sözü və arxasınca daxil etmək istədiyimiz paketin adını ikili dırnaq (“”) arasında qeyd etməliyik. Bu proqramda “fmt” paketin içindəki “Printlnfunksiyasından “Salam Dünya!” mətnini çapa vermək üçün istifadə etmişik.

Növbəti sətrdə func açar sözü istifadə edərək əsas funksiya təyin olunmuşdur. Növbəti məqalələrdə funksiyalardan detallı bəhs edəcəyik.

Proqramın icra olunması

Go proqramını icra etmək üçün go run əmrinə icra etmək istədiyiniz .go file-nın tam yolunu arqument kimi göstərməlisiz(Güman edilir ki, siz öz əməliyyat sisteminizə uyğun Go yükləmisiniz). Yuxarıda yazdığımız proqramı salamDunya.go adı ilə yaddaşda saxlayaq. Həmin proqramı icra etmək üçün proqramı saxladığımız ünvanda terminalda aşağıdakı sətri icra edək.

$ go run salamDunya.go

Enteri basdıqdan sonra aşağıdak nəticə ilə qarşılacağıq.

Salam Dünya!

Əgər daha çox .go faylı bir dəfəyə icra etmək istəsəz onda glob şablonundan(pattern) istifadə edə bilərsiniz.

$ go run dir/*.go
$ go run dir/**/*.go
$ go run file-a.go file-b.go file-c.go

Ola bilər ki, sizin proqram təminatı bir neçə .go faylından ibarət olsun. Ancaq, onların arasında yalniz bir əsas(main) funksiya ola bilər.

İkili(binary) icra oluna bilən fayl yaratmaq üçün go build əmrindən istifadə edə bilərsiniz.

$ go build salamDunya.go

Yuxarıdakı əmrin icrasından sonra cari qovluqda ikili icra oluna bilən salamDunya faylı yaranacaqdır. Siz bu faylı aşağıdakı şəkildə icra edə bilərsiniz.

$ ./salamDunya

Şərhlər (Comments)

Golang-də şərh yazmaq üçün aşağıdakı kimi sintaksis istifadə olunur.

// Tək sətr şərh
/*
Çoxlu sətr şərh
Və GoLang möhtəşəmdir.
Mənlə birgə söylə, GoLang möhtəşəmdir.
*/

Nöqtəli vergüllər (Semicolons)

Gördüyünüz kimi kod hissəciyində JavaScript, C və ya C++ -da olduğu kimi nöqtəli vergül istifadə etməmişik.

C də olduğu kimi Golang-də də ifadələri(statements) sonlandırmaq üçün nöqtəli vergül istifadə olunur amma digərlərindən fərqli olaraq Go-da həmin nöqtəli vergüllər kod içərisində görünmür. Go Lexer proqramı həmin nöqtəli vergülləri müəyyən qayda ilə avtomatik olaraq koda əlavə edir.

Qayda isə budur. Əgər yeni sətrdən əvvəlki token identifikator(int, float64), sadə number və yastring literaldırsa və ya aşağıdakı tokenlərdən biridirsə,

break continue fallthrough return ++ -- ) }

onda Lexer həmişə bu tokenlərdən sonraya nöqtəli vergül əlavə edir. Bunu bu formada ümumiləşdirə bilərik, “əgər yeni sətr ifadə sonlandıra biləcək bir tokendən sonra gəlirsə onda nöqtəli vergül əlavə et”.

Buna görə də, Go-da nöqtəli vergül yazmaqda sərbəstsiniz və əgər bilmədən koda nöqtəli vergül əlavə etsəniz VSCode əlavəsi faylı yaddaşa verən zaman həmin nöqtəli vergülü siləcək. Həmçinin siz gofmt əmrini istifadə edərək kodunuzu Golang standartlarına uyğun formalaşdıra bilərsiniz.

Amma bəzi hallarda nöqtəli vergül istifadə etmək zəruridir. Bu halları növbəti məqalələrdə qeyd edəcəm.

Go Playground

Siz sadə Go proqramları yazmaq üçün online mətn redaktorundan istifadə edə bilərsiniz.

İstifadə olunmuş mənbələr

--

--

Elnur Mammadli
PASHA Bank

I am Software Developer at PASHA Bank OJSC. I am autodidact.