String ve byte
- Go kursu
- Başlangıç
- Ders 57/90
- 4 dk
String'in arkasındaki byte dizisini öğrenirsin.
String ve byte
Go string'i değiştirilemez (immutable) bir bayt dizisidir. Bir karakteri yerinde değiştiremezsin; s[0] = 'G' derleme hatasıdır. Değiştirmek için []byte'a (ya da Türkçe harfler için []rune'a) çevirip yeni bir string oluşturulur:
s := "merhaba"
b := []byte(s)
b[0] = 'M'
fmt.Println(string(b)) // Merhabas[i] bir byte verir, string değil.
Değişmezliğin faydası
String'ler değişmez olduğu için güvenle paylaşılır ve alt string'ler (s[2:5]) kopya yapmadan aynı baytları gösterir. Bedeli: döngüde s += "x" her seferinde yeni string ayırır. Çok parçalı metin kurarken strings.Builder kullanılır (birleştirme dersinde göreceksin).
Uygulama İlk harfi büyüt
s := "golang" tanımla. []byte'a çevir, ilk baytı 'G' yap ve yeni string'i yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
func main() {
s := "golang"
b := []byte(s)
b[0] = 'G'
fmt.Println(string(b))
}Beklenen çıktı
Golang
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>fmt.Println("Go"[0])</code> ne yazdırır?
- "G"
- Hata
- 71 (G'nin bayt değeri) Doğru cevap
- G
Açıklama: Dizinleme bir byte (uint8) döndürür; harf olarak görmek için string("Go"[0:1]) ya da %c kullanılır.
2 Bayt dilimine çevir
b := []____(s)
b[0] = 'M'
b := []byte(s)
b[0] = 'M'
Açıklama: []byte(s) string'in değiştirilebilir bir bayt kopyasını oluşturur.
3 İfade ve tür
| Kavram | Anlamı |
|---|---|
"Go" |
string |
"Go"[0] |
byte (71) |
"Go"[0:1] |
string ("G") |
[]byte("Go") |
[71 111] |