Rune vs Byte
Pahami bagian dalam string Go
Rune vs Byte adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Apa Itu String Go?
Dalam Go, string adalah urutan bita yang tidak dapat diubah. Bita biasanya berisi teks berkode UTF-8, tetapi Go tidak pernah mewajibkan hal tersebut.
- Anda tidak dapat mengubah string secara langsung.
len-nya menghitung bita, bukan karakter.
package main
import "fmt"
func main() {
s := "Go"
fmt.Println(s)
fmt.Println(len(s))
}Bita di Balik Layar
Mengindeks string dengan s[i] mengembalikan satu bita (bertipe byte, alias untuk uint8).
Untuk teks ASCII biasa, setiap karakter tepat berukuran satu bita.
package main
import "fmt"
func main() {
s := "ABC"
fmt.Println(s[0])
fmt.Println(s[1])
fmt.Println(s[2])
}Bita adalah Angka
Karena bita hanyalah angka, mencetak s[0] menampilkan 65 (kode ASCII untuk A), bukan hurufnya.
Untuk melihat karakternya, konversikan bita tersebut kembali menjadi string.
package main
import "fmt"
func main() {
s := "ABC"
fmt.Println(string(s[0]))
}Apa Itu rune?
rune adalah alias untuk int32 dan mewakili satu titik kode Unicode.
- Satu rune dapat mencakup beberapa bita saat dikodekan sebagai UTF-8.
- Gunakan rune saat Anda memperhatikan karakter, bukan bita mentah.
package main
import "fmt"
func main() {
var r rune = 'A'
fmt.Println(r)
fmt.Println(string(r))
}Karakter Multibita
Karakter non-ASCII membutuhkan lebih dari satu bita dalam UTF-8. String seperti "héllo" memiliki lebih banyak bita daripada jumlah hurufnya.
Perhatikan bahwa len melaporkan jumlah bita, yang lebih besar daripada panjang yang terlihat.
package main
import "fmt"
func main() {
s := "héllo"
fmt.Println(len(s))
}Melakukan range pada String
Perulangan for range pada string secara otomatis mendekode UTF-8. Setiap iterasi menghasilkan:
- indeks bita tempat rune dimulai,
- rune itu sendiri.
package main
import "fmt"
func main() {
for i, r := range "héllo" {
fmt.Println(i, string(r))
}
}Menghitung Karakter dengan Benar
Untuk menghitung karakter, bukan bita, konversikan string menjadi []rune lalu ambil panjangnya.
Hasilnya adalah jumlah titik kode.
package main
import "fmt"
func main() {
s := "héllo"
runes := []rune(s)
fmt.Println(len(runes))
}Mengindeks berdasarkan Rune
Setelah memiliki []rune, Anda dapat mengindeksnya untuk memperoleh karakter ke-N dengan andal, bahkan pada teks multibita.
package main
import "fmt"
func main() {
runes := []rune("héllo")
fmt.Println(string(runes[1]))
}String ke Bita dan Sebaliknya
Anda dapat mengonversi string dan []byte secara bebas.
[]byte(s)menghasilkan bita mentah.string(b)membangun kembali teks.
package main
import "fmt"
func main() {
b := []byte("Go")
fmt.Println(b)
fmt.Println(string(b))
}Membangun String dari Rune
Slice rune dapat dikonversikan kembali menjadi string dengan cara yang sama. Ini berguna setelah Anda mengedit karakter satu per satu.
package main
import "fmt"
func main() {
runes := []rune{'G', 'o', '!'}
fmt.Println(string(runes))
}Ringkasan Bita vs Rune
Model mental singkat:
byte= satu bita mentah (uint8),len(s)menghitung bita ini.rune= satu titik kode Unicode (int32),rangemenghasilkan titik kode ini.- Gunakan
[]runesaat menghitung atau mengindeks karakter.
package main
import "fmt"
func main() {
s := "café"
fmt.Println(len(s))
fmt.Println(len([]rune(s)))
}Pemeriksaan Cepat
Uji pemahaman Anda tentang rune dan bita.
Rangkuman: Rune vs Bita
Anda telah mempelajari bahwa string Go adalah urutan bita yang tidak dapat diubah, biasanya dalam UTF-8.
byteadalah bita mentah;lenmenghitung bita.runeadalah titik kode Unicode;rangemendekodekannya.- Lakukan konversi dengan
[]byte(s)dan[]rune(s)untuk bekerja pada tingkat yang tepat.
package main
import "fmt"
func main() {
s := "Go語"
fmt.Println("bytes:", len(s))
fmt.Println("runes:", len([]rune(s)))
}Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Rune vs Byte” gratis?
Ya — teks lengkap “Rune vs Byte” 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 “Rune vs Byte”?
Pahami bagian dalam string Go 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 1 dari 4.
Berapa lama pelajaran “Rune vs Byte” 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.