0Pricing
Go Academy · Pelajaran

Konversi Tipe di Go

Konversi eksplisit, alias tipe, dan tipe yang didefinisikan

Konversi Tipe di Go adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Mengapa Konversi Eksplisit?

Go tidak pernah mengonversi secara implisit antar tipe. Hal ini mencegah kesalahan sulit dikenali ketika bilangan bulat kecil diam-diam mengalami luapan atau bilangan pecahan kehilangan presisi.

  • Konversi harus ditulis secara eksplisit: T(value)
  • Kompiler mendeteksi tipe yang tidak cocok saat kompilasi
  • Hal ini membuat kode Go dapat diprediksi dan aman

Konversi Numerik

Konversikan antar tipe numerik dengan tipe tujuan sebagai pemanggilan fungsi:

package main

func main() {
    var i int = 42
    var f float64 = float64(i)
    var u uint = uint(f)
    _ = u
}

Risiko Pemotongan

Mengonversi dari tipe yang lebih besar ke tipe yang lebih kecil akan memotong nilai tersebut. Tidak ada kesalahan yang muncul — Anda harus berhati-hati:

package main

func main() {
    big := int64(300)
    small := int8(big) // 300 % 256 = 44 — silent truncation!
    _ = small
}

Konversi string dan []byte

Mengonversi antara string dan []byte menyalin data:

package main

func main() {
    s := "hello"
    b := []byte(s)   // string to byte slice
    b[0] = 'H'
    s2 := string(b)  // byte slice to string
    _ = s2
}

string dan []rune

Untuk manipulasi karakter yang aman bagi Unicode, konversikan ke []rune:

package main

func main() {
    s := "Merhaba"
    runes := []rune(s)
    _ = len(runes) // character count, not byte count
}

Paket strconv

Untuk mengonversi antara string dan angka, gunakan paket strconv:

import "strconv"

func main() {
    n, err := strconv.Atoi("42")   // string -> int
    s := strconv.Itoa(123)          // int -> string
    _ = n; _ = err; _ = s
}

strconv.ParseFloat dan FormatFloat

Urai dan format string bilangan pecahan dengan aman:

import "strconv"

func main() {
    f, err := strconv.ParseFloat("3.14", 64)
    if err != nil { return }
    s := strconv.FormatFloat(f, 'f', 2, 64) // "3.14"
    _ = s
}

Alias Tipe vs Tipe Terdefinisi

Go membedakan antara alias tipe dan tipe terdefinisi:

  • type Celsius float64 — tipe terdefinisi baru; memerlukan konversi eksplisit ke/dari float64
  • type Celsius = float64 — alias; dapat dipertukarkan dengan float64

Contoh Tipe Terdefinisi

Tipe terdefinisi meningkatkan kejelasan API dan mencegah pencampuran yang tidak disengaja:

type Celsius float64
type Fahrenheit float64

func CtoF(c Celsius) Fahrenheit {
    return Fahrenheit(c*9/5 + 32)
}

func main() {
    boiling := Celsius(100)
    _ = CtoF(boiling)
}

Konversi Antarmuka

Nilai apa pun dapat dikonversi ke tipe antarmuka yang dipenuhinya. Konversi kembali memerlukan pemeriksaan tipe:

var i interface{} = "hello"
s, ok := i.(string) // type assertion
if ok {
    _ = s // safe to use
}

Pemeriksaan Singkat

Fungsi apa yang mengonversi string menjadi int di Go?

Ringkasan: Konversi Tipe

Hal-hal penting tentang konversi tipe di Go:

  • Go tidak pernah melakukan konversi implisit — gunakan sintaks T(value)
  • Konversi numerik dapat memotong nilai — nyatakan risikonya secara eksplisit
  • []byte(s) dan string(b) menyalin data
  • Gunakan strconv.Atoi / strconv.Itoa untuk konversi string dan angka
  • Tipe terdefinisi memerlukan konversi eksplisit; alias tidak

Kursus berikutnya: Alur Kontrol dengan if, for, dan switch.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Konversi Tipe di Go” gratis?

Ya — teks lengkap “Konversi Tipe di Go” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Konversi Tipe di Go”?

Konversi eksplisit, alias tipe, dan tipe yang didefinisikan Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Konversi Tipe di Go” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mendeklarasikan Variabel di Go
  2. Tipe Bawaan Go
  3. Konstanta dan iota
  4. Konversi Tipe di Go
← Kembali ke Go Academy