Menu
Coddy logo textTech

Funkcje zwracające błędy

Część sekcji Podstawy ścieżki GO w Coddy. Lekcja 104 z 109.

W Go funkcje często zwracają wartość error jako ostatnią wartość zwracaną, aby wskazać, czy coś poszło nie tak.

Utwórz funkcję, która zwraca zarówno wynik, jak i błąd:

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

Wywołaj funkcję i obsłuż błąd:

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("Result:", result)
    }
}

Wynik będzie następujący:

Error: cannot divide by zero
challenge icon

Wyzwanie

Początkujący

W tym wyzwaniu poćwiczysz tworzenie funkcji, która zwraca błąd, gdy podano nieprawidłowe dane wejściowe.

Musisz uzupełnić funkcję validateUsername, która sprawdza, czy nazwa użytkownika jest prawidłowa. Nazwa użytkownika jest prawidłowa, jeśli ma co najmniej 3 znaki. Jeśli nazwa użytkownika jest prawidłowa, zwróć nil jako błąd. Jeśli jest nieprawidłowa, zwróć błąd z odpowiednim komunikatem.

Kod wywołujący Twoją funkcję i obsługujący błąd jest już dla Ciebie napisany.

Uwaga: To wyzwanie korzysta ze wstępnie zdefiniowanych zmiennych zamiast danych wejściowych użytkownika.

Spróbuj swoich sił

package main

import (
	"errors"
	"fmt"
)

func validateUsername(username string) error {
	// TODO: Sprawdź, czy nazwa użytkownika ma mniej niż 3 znaki
	// Jeśli tak, zwróć błąd z komunikatem "username too short"
	// W przeciwnym razie zwróć nil (brak błędu)
	
	return nil
}

func main() {
	// Przetestuj z poprawną nazwą użytkownika
	validName := "bob123"
	err1 := validateUsername(validName)
	if err1 != nil {
		fmt.Printf("%s is invalid: %v\n", validName, err1)
	} else {
		fmt.Printf("%s is valid!\n", validName)
	}
	
	// Przetestuj z niepoprawną nazwą użytkownika
	invalidName := "ab"
	err2 := validateUsername(invalidName)
	if err2 != nil {
		fmt.Printf("%s is invalid: %v\n", invalidName, err2)
	} else {
		fmt.Printf("%s is valid!\n", invalidName)
	}
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator Go online