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/darifloat64type Celsius = float64— alias; dapat dipertukarkan denganfloat64
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)danstring(b)menyalin data- Gunakan
strconv.Atoi/strconv.Itoauntuk 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
- Mendeklarasikan Variabel di Go
- Tipe Bawaan Go
- Konstanta dan iota
- Konversi Tipe di Go