Rangkuman: Struktur Data Kustom
Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 101 dari 109.
Tantangan
MudahMari buat struktur data kustom sederhana untuk mengulas kembali hal-hal yang telah kita pelajari tentang struct di Go.
Dalam tantangan ini, kamu akan membuat struktur data Counter dasar yang dapat:
- Mencatat nilai hitungan
- Menambah hitungan
- Mengurangi hitungan
- Mengatur ulang hitungan ke nol
Lengkapi kodemu dengan menerapkan method yang belum ada untuk struct Counter.
Coba sendiri
package main
import (
"fmt"
)
// Counter adalah struktur data penghitung sederhana
type Counter struct {
value int
name string
}
// NewCounter membuat penghitung baru dengan nama yang diberikan
func NewCounter(name string) Counter {
return Counter{
value: 0,
name: name,
}
}
// Increment menambah nilai penghitung sebesar 1
func (c *Counter) Increment() {
// Tambahkan kode untuk menambah nilai penghitung
}
// Decrement mengurangi nilai penghitung sebesar 1 (tetapi tidak sampai di bawah 0)
func (c *Counter) Decrement() {
// Tambahkan kode untuk mengurangi nilai penghitung
// Pastikan nilainya tidak turun di bawah 0
}
// Reset mengembalikan nilai penghitung ke 0
func (c *Counter) Reset() {
// Tambahkan kode untuk mengembalikan nilai penghitung ke 0
}
// Value mengembalikan hitungan saat ini
func (c Counter) Value() int {
// Tambahkan kode untuk mengembalikan nilai saat ini
return 0 // Ganti ini
}
// String mengembalikan representasi string dari penghitung
func (c Counter) String() string {
return fmt.Sprintf("%s: %d", c.name, c.value)
}
func main() {
// Buat penghitung baru bernama "Visitors"
visitors := NewCounter("Visitors")
// Tambah nilai penghitung beberapa kali
visitors.Increment()
visitors.Increment()
visitors.Increment()
// Tampilkan jumlah saat ini
fmt.Println(visitors)
fmt.Println("Current value:", visitors.Value())
// Kurangi nilai penghitung
visitors.Decrement()
fmt.Println(visitors)
// Atur ulang penghitung
visitors.Reset()
fmt.Println(visitors)
// Uji bahwa nilai penghitung tidak turun di bawah nol
visitors.Decrement()
fmt.Println(visitors)
}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 Tindakan10Tipe Komposit: array
Pengenalan arrayMendeklarasikan arrayMenginisialisasi arrayMengakses elemen arrayPanjang array dengan `len`Melakukan perulangan pada arrayArray multidimensi13Tipe Komposit: Struct
Mendefinisikan Tipe KustomMembuat Instance StructMengakses Field StructPointer ke StructMenginisialisasi StructStruct TertanamStruct AnonimRangkuman: Struktur Data Kustom2Variabel 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 Kembali3Operator 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