Menu
CoddyTech

Inisialisasi struct

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan GO di Coddy. Pelajaran 9 dari 107.

Go menyediakan beberapa cara untuk menginisialisasi struct, masing-masing berguna dalam situasi yang berbeda.

Inisialisasi field bernama

type Person struct {
    Name string
    Age  int
    City string
}

p1 := Person{
    Name: "Alice",
    Age:  25,
    City: "New York",
}

Inisialisasi posisional (urutan harus sesuai dengan deklarasi field)

p2 := Person{"Bob", 30, "London"}

Inisialisasi nilai nol (semua field mendapatkan nilai default)

p3 := Person{}
// Name: "", Age: 0, City: ""

Inisialisasi parsial (field yang tidak diatur mendapat nilai nol)

p4 := Person{Name: "Charlie"}
// Name: "Charlie", Age: 0, City: ""

Pointer ke struct menggunakan &

p5 := &Person{
    Name: "Diana",
    Age:  28,
    City: "Paris",
}
fmt.Println(p5.Name) // Diana

Menggunakan var, lalu mengisi field

var p6 Person
p6.Name = "Eve"
p6.Age = 22

Inisialisasi field bernama adalah pendekatan yang paling umum dan mudah dibaca. Gunakan & saat kamu membutuhkan pointer ke struct.

challenge icon

Tantangan

Sedang

Buat tiga Player object dengan metode inisialisasi yang berbeda:

  • player1: Inisialisasi field bernama menggunakan nilai input
  • player2: Inisialisasi field bernama dengan Name: "Guest", Class: "Novice", HitPoints: 50
  • player3: Gunakan deklarasi var, lalu tetapkan setiap field satu per satu

Coba sendiri

package main

import "fmt"

func main() {
    var name, class string
    var hp int
    fmt.Scan(&name, &class, &hp)

    // TODO: Buat player1 dengan inisialisasi field bernama menggunakan nilai input

    // TODO: Buat player2 dengan inisialisasi field bernama:
    // Name: "Guest", Class: "Novice", HitPoints: 50

    // TODO: Buat player3 dengan deklarasi var, lalu tetapkan nilai field:
    // Name: "Hero", Class: "Knight", HitPoints: 200

    fmt.Printf("Player 1: %s (%s) - HP: %d\n", player1.Name, player1.Class, player1.HitPoints)
    fmt.Printf("Player 2: %s (%s) - HP: %d\n", player2.Name, player2.Class, player2.HitPoints)
    fmt.Printf("Player 3: %s (%s) - HP: %d\n", player3.Name, player3.Class, player3.HitPoints)
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler Go online