Fungsi yang Mengembalikan error
Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 104 dari 109.
Dalam Go, fungsi biasanya mengembalikan error sebagai nilai pengembalian terakhir untuk menunjukkan apakah terjadi kesalahan.
Buat fungsi yang mengembalikan hasil dan error:
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("cannot divide by zero")
}
return a / b, nil
}Panggil fungsi dan tangani error:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}
}Outputnya akan menjadi:
Error: cannot divide by zeroTantangan
PemulaDalam tantangan ini, kamu akan berlatih membuat fungsi yang mengembalikan error saat input yang tidak valid diberikan.
Kamu perlu melengkapi fungsi validateUsername yang memeriksa apakah username valid. Username valid jika panjangnya setidaknya 3 karakter. Jika username valid, kembalikan nil untuk error. Jika tidak valid, kembalikan error dengan pesan yang sesuai.
Kode untuk memanggil fungsimu dan menangani error sudah ditulis untukmu.
Catatan: Tantangan ini menggunakan variabel yang telah ditentukan, bukan input pengguna.
Coba sendiri
package main
import (
"errors"
"fmt"
)
func validateUsername(username string) error {
// TODO: Periksa apakah panjang username kurang dari 3 karakter
// Jika ya, kembalikan error dengan pesan "username too short"
// Jika tidak, kembalikan nil (tanpa error)
return nil
}
func main() {
// Uji dengan username yang valid
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)
}
// Uji dengan username yang tidak valid
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)
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Perbandingan dan Logika
Operator Perbandingan, Bagian 1Operator Perbandingan, Bagian 2Operator AND LogikaOperator OR LogikaOperator NOT LogikaDasar Prioritas OperatorRingkasan, Membuat Perbandingan7Alur Kontrol: Perulangan
Penjelasan tentang `for` loop`for` loop Dasar`for` loop dengan Kondisi SajaKata Kunci `break`Kata Kunci `continue`Perulangan BersarangRangkuman: Mengulang Tindakan2Variabel dan Tipe Data Dasar
Apa itu variabelInferensi Tipe dengan `:=`Bilangan Bulat (int)Bilangan Floating-PointBooleanstringNilai NolKonstantaKonvensi PenamaanRangkuman: Variabel dan Tipe5Input/Output Dasar
Output TerformatKata Kerja FormatMencetak Tipe DataMendapatkan Input Dasar dari PenggunaRangkuman: Input dan Output8Fungsi
Memahami FungsiMendeklarasikan FungsiMemanggil FungsiParameter FungsiMengembalikan Satu NilaiMengembalikan Beberapa NilaiNilai Kembalian BernamaDasar Cakupan FungsiRangkuman: Membuat Kodemu Dapat Digunakan Kembali11Tipe Komposit: Slice
Pengenalan SliceMendeklarasikan Literal SliceMembuat Slice dengan `make`Panjang Slice vs KapasitasMengakses Elemen SliceMenambahkan ElemenMembuat Slice dari Slice/Array yang AdaMelakukan Iterasi pada SliceMenyalin SliceRangkuman: List Dinamis14Penanganan error Dasar
Konsep errorInterface `error`Fungsi yang Mengembalikan errorMemeriksa errorMembuat error SederhanaMembuat error BerformatPenanganan error DasarRingkasan: Menangani Masalah3Operator Dasar
Operator AritmetikaOperator PembagianOperator ModuloOperator PenugasanOperator Penugasan GabunganInkrementasi dan DekrementasiRangkuman: Perhitungan6Alur Kontrol: Percabangan
Pernyataan `if`Kata Kunci `else`Kata Kunci `else if`Shadowing Variabel dalam `if`Menginisialisasi VariabelPernyataan `switch``switch` dengan Ekspresi`switch` tanpa EkspresiKata Kunci `fallthrough`Ringkasan: Membuat KeputusanLatihan sendiri: Compiler Go online