Autor: 29.06.2023
Golang (Go) - praktyczny tutorial dla początkujących
Go (znany również jako Golang) to open-source'owy język programowania opracowany przez zespół inżynierów z Google. Go cechuje się prostą składnią, która została zaprojektowana w taki sposób, aby być czytelną i zrozumiałą. Język ten zyskał popularność wśród programistów ze względu na swoją prostotę, wydajność i obsługę współbieżności.
W tym artykule pokażemy Ci jak napisać swój pierwszy program w języku Go. Będziemy pisali program obliczający średnia artytmetyczną z podanej listy liczb.
Fundamenty Go - Level 1
Poznaj nowoczesny, przyszłościowy język Go. Popularność tego języka rośnie cały czas. Rośnie też ilość ofert praca dla programistów Go. Nie ma co się dziwić bo w wyrafinowany sposób łączy on prostotę z wielkimi możliwościami. Dołącz do rewolucji i zacznij naukę Go już dziś! Dowiedz się więcej
Go - najważniejsze koncepcje
Aby uruchomić kod z tego artykułu, wystarczy użyć prostego kompilatora online - dostępnego pod tym adresem: https://go.dev/play/. Dzięki temu unikniesz konieczności instalowania oraz konfigurowania lokalnego środowiska programistycznego.
Go - najważniejsze koncepcje
Na początku wyjaśnimy najważniejsze koncepcje języka, które będą niezbędne do napisania naszego prostego programu.
Deklaracja pakietu
W języku Go programy są organizowane w paczkach (pakietach), które zawierają zestaw powiązanych ze sobą plików źródłowych. Każdy plik źródłowy w pakiecie powinien mieć zadeklarowaną tę samą nazwę pakietu na jego początku.
Pakiety w Go deklarujemy tak:
package main
Taka deklaracja wskazuje, że dany plik źródłowy jest częścią pakietu main i zawiera funkcję main(), która jest punktem wejścia programu.
Możesz importować inne pakiety, które są potrzebne w twoim programie. Na przykład w ten sposób:
import (
"fmt"
)
Importujemy pakiet fmt, który jest często używany w języku Go do formatowania tekstu i obsługi wejścia/wyjścia. Dzięki niemu możesz m.in wypisywać dane do konsoli.
Funkcja main()
Każdy program w Go posiada specjalną funkcję o nazwie main(), która jest tzw. punktem wejścia. Od niej zaczyna się wykonywanie programu. Jest ona uruchamiana automatycznie po uruchomieniu programu. Funkcję main() deklarujemy w ten sposób:
func main() {
// tutaj piszemy operacje wykonywane przez funkcję
}
Zmienne
Zmienne służą do przechowywania wartości. Przykład:
sum := 0.0
Utworzyliśmy zmienną o nazwie sum, która ma przypisaną początkową wartość 0.0. Warto zwrócić uwagę na ten operator := (dwukropek i znak równości). To charakterystyczny dla języka Go element. Za jego pomocą możemy jednocześnie zadeklarować zmienną i przypisać do niej wartość.
Slice
W Go mamy kolejny ciekawy element tzw. slice. Za jego pomocą możemy przechować dynamiczną listę wielu wartości. Wyobraź sobie ten element jako zmienną, która przechowuje więcej niż jedną wartość. Popatrz na kod:
numbers := []float64{4.5, 2.3, 6.7, 8.1, 5.2}
Utworzyliśmy listę liczb. Przypisana jest ona do zmiennej numbers. Są to liczby zmiennoprzecinkowe - stąd mamy float64. Nasze liczby podaliśmy w nawiasach klamrowych.
Funkcje w języku Go
Funkcje to bloki kodu, które mogą być wykorzystywane wiele razy. Nasz program będzie liczył średnią arytmetyczną. Dlatego utworzymy funkcję, które za tą operację odpowiada.
func calculateAverage(numbers []float64) float64 {
}
Nasza funkcja ma nazwę calculateAverage. Przyjmuje ona jeden parametr o nazwie numbers. Musi to być tzw. slice z liczbami zmiennoprzecinkowymi. Funkcja zwraca wartość, która jest również liczbą zmiennoprzecinkową - float64.
Pętle
Za pomocą pętli możemy powtarzać określoną czynność. W przypadku naszego programu, użyjemy pętli do zsumowania listy liczb - dzięki temu będziemy mogli potem podzielić sumę przez ilość liczb i uzyskać w ten sposób średnią.
Oto przykład pętli:
for _, num := range numbers {
sum += num
}
Jest to pętla for, która przetwarza listę numbers. Pojedynczy element z listy jest reprezentowany przez zmienną o nazwie num. Przy każdym przejściu pętli dodajemy do zmiennej sum kolejną liczbę (sum += num) . Pętla działa do momentu, w którym wszystkie liczby z listy zostaną przetworzone: wtedy zakończy ona swoje działanie.
Finalny program
Na tym etapie znasz już główne koncepcje programistyczne w języku Go. A przynajmniej te, które będą nam potrzebne do napisania programu obliczającego średnią. Teraz popatrz na finalny kod programu:
package main
import (
"fmt"
)
func main() {
numbers := []float64{4.5, 2.3, 6.7, 8.1, 5.2}
average := calculateAverage(numbers)
fmt.Println("Średnia arytmetyczna:", average)
}
func calculateAverage(numbers []float64) float64 {
sum := 0.0
for _, num := range numbers {
sum += num
}
average := sum / float64(len(numbers))
return average
}
Możesz wkleić kod do edytora online, o którym wspomnieliśmy na początku artykułu. Po kliknięciu na przycisku “Run” program zostanie skompilowany oraz uruchomiony. Powinien się pojawić następujący wynik:
Średnia arytmetyczna: 5.36
Jeszcze raz popatrzmy na główne elementy programu.
- Deklarujemy pakiet o nazwie main oraz importujemy pakiem fmt.
- Wewnątrz głównej funkcji main tworzymy slice (listę) liczb typu float64. Przypisujemy do niej kilka przykładowych liczb.
- Tworzymy zmienną average, która ma przechowywać wyliczoną średnią. Do zmiennej przypisujemy wynik zwrócony przez funkcję calculateAverage().
- Za pomocą fmt.Println("Średnia arytmetyczna:", average) wyprowadzamy na ekran komunikat oraz wartość zmiennej average.
Teraz popatrzmy na operacje wewnątrz funkcji calculateAverage().
- Deklarujemy zmienną sum, która ma przechowywać sumę wartości wszystkich liczb.
- Za pomocą pętli for sumujemy wszystkie liczby.
- Do zmiennej average przypisujemy średnią. Dzielimy wartość sum przez ilość liczb. Ilość liczb liczymy za pomocą wbudowanej funkcji len(). Zwróci ona ilość elementów w slice o nazwie numbers.
- Na końcu funkcji, za pomocą instrukcji return, zwracamy wartość zmiennej average.
Kolejne kroki
Ten prosty program powinien pozwolić Ci na postawienie pierwszych kroków w świecie języka Go. Spróbuj trochę poeksperymentować: możesz na przykład zmienić listę liczb na inne wartości i sprawdzić jaki wyjdzie wynik.
Chcesz nauczyć się podstaw języka Go w efektywny i praktyczny sposób? Zacznij od kursu Fundamenty Go - Level 1. Znajdziesz w nim całą masę ćwiczeń, zadań oraz bardzo przystępną teorię.