Pointer ke Struct
Termasuk bagian Dasar-Dasar dalam perjalanan GO di Coddy. Pelajaran 97 dari 109.
Saat bekerja dengan struct, kamu bisa membuat pointer ke struct tersebut seperti pada tipe lainnya. Ini berguna untuk meneruskan struct berukuran besar secara efisien.
Definisikan struct Person dan buat pointer ke sana:
type Person struct {
name string
age int
}
func main() {
person := Person{name: "Alice", age: 30}
// Buat pointer ke struct
personPtr := &person
// Akses field melalui pointer
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)
}Output menunjukkan bahwa kita dapat mengakses field melalui pointer:
Alice
30Kamu juga bisa mengubah field melalui pointer:
personPtr.age = 31
fmt.Println(person.age) // Mencetak: 31Tantangan
PemulaDalam tantangan ini, kamu akan berlatih menggunakan pointer ke struct di Go. Kamu memiliki struct Person dengan field name dan age. Tugasmu adalah memperbarui informasi orang tersebut menggunakan pointer ke struct.
Kode tersebut sudah membuat struct Person dan pointer ke struct itu. Kamu perlu mengubah informasi orang tersebut melalui pointer.
Coba sendiri
package main
import "fmt"
// Struct Person dengan field name dan age
type Person struct {
name string
age int
}
func main() {
// Buat struct Person
person := Person{
name: "John",
age: 25,
}
// Buat pointer ke struct Person
personPtr := &person
// Tampilkan informasi awal person
fmt.Println("Original person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
// TODO: Gunakan pointer untuk mengubah nama person menjadi "Jane" dan usianya menjadi 30
// Petunjuk: Kamu bisa mengakses field struct melalui pointer dengan notasi titik
// Tampilkan informasi person yang sudah diperbarui
fmt.Println("Updated person:")
fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}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 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