Site Overlay

Your First Program

Tradycyjnie pierwszy program napisany w jakimkolwiek języku programowania nazywany jest programem „Hello World” – jest to program, który po prostu wypisuje Hello World do terminala. Napiszmy jeden z nich używając Go.

Najpierw utwórz nowy folder, w którym będziemy mogli przechowywać nasz program. Utwórz folder o nazwie ~/src/golang-book/chapter2. (Gdzie ~ oznacza twój katalog domowy) Z terminala możesz to zrobić wpisując następujące komendy:

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

Używając swojego edytora tekstu wpisz następujące:

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

Upewnij się, że twój plik jest identyczny z tym, co jest tutaj pokazane i zapisz go jako main.go w folderze, który właśnie stworzyliśmy. Otwórz nowy terminal i wpisz następujące dane:

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

Powinieneś zobaczyć Hello World wyświetlone w swoim terminalu. Polecenie go run pobiera kolejne pliki (oddzielone spacjami), kompiluje je do pliku wykonywalnego zapisanego w katalogu tymczasowym, a następnie uruchamia program. Jeśli nie zobaczyłeś Hello World, mogłeś popełnić błąd podczas wpisywania programu. Kompilator Go podpowie Ci, gdzie leży błąd. Jak większość kompilatorów, kompilator Go jest niezwykle pedantyczny i nie ma tolerancji dla błędów.

Jak czytać program Go

Przyjrzyjmy się temu programowi bardziej szczegółowo. Programy Go czyta się od góry do dołu, od lewej do prawej. (jak książkę) Pierwsza linia mówi tak:

package main

Jest to znane jako „deklaracja pakietu”. Każdy program Go musi zaczynać się od deklaracji pakietu. Pakiety są sposobem Go na organizowanie i ponowne wykorzystanie kodu. Istnieją dwa rodzaje programów Go: programy wykonywalne i biblioteki. Programy wykonywalne to takie, które możemy uruchomić bezpośrednio z terminala. (w Windows kończą się one na .exe) Biblioteki to zbiory kodu, które pakujemy razem, abyśmy mogli ich używać w innych programach. Biblioteki poznamy bardziej szczegółowo później, na razie upewnij się, że dołączasz tę linię do każdego programu, który piszesz.

Następna linia jest linią pustą. Komputery reprezentują nowe linie za pomocą specjalnego znaku (lub kilku znaków). Nowe linie, spacje i tabulatory są znane jako biała przestrzeń (ponieważ nie można ich zobaczyć). Go w większości przypadków nie dba o białe linie, używamy ich do ułatwienia czytania programów. (Mógłbyś usunąć tę linię i program zachowywałby się dokładnie tak samo)

Wtedy widzimy to:

import "fmt"

Słowo kluczowe import jest jak dołączamy kod z innych pakietów do naszego programu. Pakiet fmt (skrót od format) implementuje formatowanie dla danych wejściowych i wyjściowych. Biorąc pod uwagę to, czego właśnie nauczyliśmy się o pakietach, jak myślisz, co pliki pakietu fmt będą zawierały na górze?

Zauważ, że fmt powyżej jest otoczone cudzysłowem. Użycie podwójnych cudzysłowów w ten sposób jest znane jako „literał łańcuchowy”, który jest rodzajem „wyrażenia”. W Go łańcuchy reprezentują sekwencje znaków (liter, cyfr, symboli, …) o określonej długości. Łańcuchy są opisane bardziej szczegółowo w następnym rozdziale, ale na razie ważne jest, aby pamiętać, że po otwierającym " znaku musi w końcu nastąpić inny " znak, a wszystko pomiędzy nimi jest zawarte w łańcuchu. (Sam znak " nie jest częścią łańcucha)

Linia, która zaczyna się od // jest znana jako komentarz. Komentarze są ignorowane przez kompilator Go i są tam dla twojego własnego dobra (lub kogokolwiek, kto odbierze kod źródłowy twojego programu). Go obsługuje dwa różne style komentarzy: // komentarze, w których cały tekst pomiędzy // a końcem linii jest częścią komentarza oraz /* */ komentarze, w których wszystko pomiędzy *s jest częścią komentarza. (I może zawierać wiele linii)

Po tym widzisz deklarację funkcji:

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

Funkcje są elementami składowymi programu Go. Mają wejścia, wyjścia i serię kroków zwanych instrukcjami, które są wykonywane w kolejności. Wszystkie funkcje zaczynają się od słowa kluczowego func, po którym następuje nazwa funkcji (main w tym przypadku), lista zero lub więcej „parametrów” otoczonych nawiasami, opcjonalny typ zwrotu i „ciało”, które jest otoczone nawiasami klamrowymi. Ta funkcja nie ma parametrów, nie zwraca niczego i ma tylko jedną instrukcję. Nazwa main jest specjalna, ponieważ jest to funkcja, która zostanie wywołana podczas wykonywania programu.

Ostatnim elementem naszego programu jest ta linia:

 fmt.Println("Hello World")

Ta instrukcja składa się z trzech elementów. Najpierw uzyskujemy dostęp do innej funkcji wewnątrz pakietu fmt o nazwie Println (to jest fragment fmt.Println, Println oznacza Print Line). Następnie tworzymy nowy łańcuch zawierający Hello World i wywołujemy (znaną również jako call lub execute) tę funkcję z łańcuchem jako pierwszym i jedynym argumentem.

W tym momencie widzieliśmy już wiele nowej terminologii i możesz być nieco przytłoczony. Czasami pomocne jest celowe przeczytanie swojego programu na głos. Jedno z czytań programu, który właśnie napisaliśmy, może wyglądać tak:

Stwórz nowy program wykonywalny, który odwołuje się do biblioteki fmt i zawiera jedną funkcję o nazwie main. Funkcja ta nie przyjmuje żadnych argumentów, nie zwraca niczego i wykonuje następujące czynności: Uzyskaj dostęp do funkcji Println zawartej wewnątrz pakietu fmt i wywołaj ją, używając jednego argumentu – łańcucha Hello World.

Funkcja Println wykonuje prawdziwą pracę w tym programie. Możesz dowiedzieć się o niej więcej wpisując w terminalu następujące polecenie:

godoc fmt Println

Pomiędzy innymi powinieneś zobaczyć to:

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.

Go jest bardzo dobrze udokumentowanym językiem programowania, ale ta dokumentacja może być trudna do zrozumienia, chyba że jesteś już zaznajomiony z językami programowania. Niemniej jednak polecenie godoc jest niezwykle użyteczne i jest dobrym miejscem do rozpoczęcia pracy, gdy masz jakieś pytanie.

Wracając do omawianej funkcji, ta dokumentacja mówi ci, że funkcja Println wyśle wszystko, co jej dasz na standardowe wyjście – jest to nazwa wyjścia terminala, w którym pracujesz. Ta funkcja jest tym, co powoduje wyświetlenie Hello World.

W następnym rozdziale zbadamy, jak Go przechowuje i reprezentuje rzeczy takie jak Hello World, poznając typy.

Problemy

  • Co to jest whitespace?

  • Co to jest komentarz? Jakie są dwa sposoby pisania komentarza?

  • Nasz program rozpoczął się od package main. Od czego zaczynałyby się pliki w pakiecie fmt?

  • Użyliśmy funkcji Println zdefiniowanej w pakiecie fmt. Gdybyśmy chcieli skorzystać z funkcji Exit z pakietu os co musielibyśmy zrobić?

  • Zmodyfikuj napisany przez nas program tak, aby zamiast wypisywać Hello World wypisywał Hello, my name is, a po nim Twoje imię.

← Previous Index

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.