0Pricing
Go Academy · Lekcja

Podstawy funkcji i sygnatury

Parametry, typy zwracane i konwencje wywoływania

Podstawy funkcji i sygnatury to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.

Definiowanie funkcji

W języku Go funkcje definiuje się za pomocą słowa kluczowego func:

func greet(name string) string {
    return "Hello, " + name
}

Parametry i argumenty

Parametry mają określone typy i są zapisywane jako pary name type. Wiele parametrów tego samego typu może współdzielić adnotację typu:

func add(x, y int) int {
    return x + y
}

func rect(w, h float64) float64 {
    return w * h
}

Funkcje bez wartości zwracanej

Funkcje, które nie zwracają wartości, po prostu pomijają typ zwracany. Zwracają niejawnie, gdy wykonanie dociera do końca funkcji:

func printBanner(title string) {
    fmt.Println("=====", title, "======")
}

Wywoływanie funkcji

Wywołaj funkcję, podając jej nazwę, nawiasy i pasujące argumenty:

result := add(3, 4)        // 7
fmt.Println(greet("Go"))   // Hello, Go
printBanner("Welcome")

Funkcje jako wartości pierwszej klasy

Funkcje w języku Go są wartościami pierwszej klasy — można przypisywać je do zmiennych i przekazywać jako argumenty:

apply := func(n int, f func(int) int) int {
    return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10

Typy funkcji

Można definiować nazwane typy funkcji, aby uzyskać czytelniejsze sygnatury:

type Transform func(int) int

func applyAll(n int, fns []Transform) int {
    for _, f := range fns {
        n = f(n)
    }
    return n
}

Funkcje rekurencyjne

Go obsługuje rekurencję. Należy pamiętać o głębokości stosu — stosy goroutines w Go rosną dynamicznie, ale nieograniczona rekurencja nadal prowadzi do przepełnienia stosu:

func factorial(n int) int {
    if n <= 1 {
        return 1
    }
    return n * factorial(n-1)
}

Konwencje nazewnictwa funkcji

Konwencje nazewnictwa funkcji w języku Go:

  • Używaj MixedCaps dla nazw eksportowanych lub mixedCaps dla nieeksportowanych
  • Stosuj krótkie nazwy opisujące działanie: New, Get, Parse, Write
  • Unikaj GetX w przypadku prostych getterów — używaj po prostu X
  • Predykaty logiczne: IsValid, HasPrefix

Funkcja init()

Specjalna funkcja init() jest uruchamiana automatycznie podczas ładowania pakietu, przed funkcją main():

  • Nie przyjmuje argumentów i niczego nie zwraca
  • Pakiet może zawierać wiele funkcji init()
  • Służy do jednorazowej konfiguracji, na przykład rejestrowania sterowników

Funkcja a metoda

Funkcja nie jest powiązana z żadnym typem. Metoda ma receiver, który zostanie omówiony w części „Struktury i metody”. Obie używają słowa kluczowego func:

// Function
func max(a, b int) int { ... }

// Method
func (c Counter) Value() int { ... }

Szybkie sprawdzenie

Czy funkcja w języku Go może zwracać wiele wartości?

Podsumowanie: podstawy funkcji

Funkcje w języku Go są wyraziste i elastyczne:

  • func name(params) returnType { }
  • Parametry tego samego typu mogą współdzielić adnotację typu
  • Funkcje są wartościami pierwszej klasy
  • Można definiować typy funkcji dla wielokrotnego użycia sygnatur
  • Rekurencja jest obsługiwana, a init() jest uruchamiana podczas ładowania pakietu

Następny temat: wiele wartości zwracanych — szczegółowe omówienie.

Często zadawane pytania

Czy lekcja „Podstawy funkcji i sygnatury” jest bezpłatna?

Tak — pełny tekst „Podstawy funkcji i sygnatury” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Podstawy funkcji i sygnatury”?

Parametry, typy zwracane i konwencje wywoływania Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Go Academy?

Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Podstawy funkcji i sygnatury”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?

Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy funkcji i sygnatury
  2. Wiele wartości zwracanych
  3. Funkcje wariadyczne
  4. defer, funkcje anonimowe i domknięcia
← Powrót do Go Academy