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)) // 10Typy 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
MixedCapsdla nazw eksportowanych lubmixedCapsdla nieeksportowanych - Stosuj krótkie nazwy opisujące działanie:
New,Get,Parse,Write - Unikaj
GetXw przypadku prostych getterów — używaj po prostuX - 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
- Podstawy funkcji i sygnatury
- Wiele wartości zwracanych
- Funkcje wariadyczne
- defer, funkcje anonimowe i domknięcia