Özet - String
- Go kursu
- Başlangıç
- Ders 62/90
- 4 dk
strconv ve strings paketlerini birleştirerek bir metin işleyici yazarsın.
String özeti
String'ler değişmez UTF-8 baytlarıdır: len bayt sayar, range ve []rune karakterle çalışır. Birleştirme: +, Sprintf, Join, döngüde strings.Builder. Dönüşüm: strconv.Atoi/Itoa/ParseFloat (hataları kontrol et). Arama ve düzenleme: strings.Contains, HasPrefix, Split, Fields, Replace, TrimSpace, EqualFold.
strings.Cut
Go 1.18 ile gelen strings.Cut bir metni ilk ayraçta ikiye böler; anahtar=değer ayrıştırmada çok kullanışlıdır:
anahtar, deger, bulundu := strings.Cut("port=8080", "=")
fmt.Println(anahtar, deger, bulundu) // port 8080 trueAyraç yoksa bulundu false olur ve tüm metin anahtar'a gelir.
Uygulama Ayar ayrıştırıcı
"ad=Ada;yas=36;dil=go" metnini önce strings.Split ile ; karakterinden böl, sonra her parçayı strings.Cut ile = karakterinden ayırıp bir map[string]string'e koy. m["dil"] ve len(m) yazdır.
Başlangıç kodu
package main
import (
"fmt"
"strings"
)
func main() {
// buraya yaz
}Örnek çözüm
package main
import (
"fmt"
"strings"
)
func main() {
m := map[string]string{}
for _, parca := range strings.Split("ad=Ada;yas=36;dil=go", ";") {
if k, v, ok := strings.Cut(parca, "="); ok {
m[k] = v
}
}
fmt.Println(m["dil"], len(m))
}Beklenen çıktı
go 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>strings.Split("a b", " ")</code> ile <code>strings.Fields("a b")</code> farkı nedir?
- Split boşlukları atar
- Split boş parça üretir ([a b] 3 eleman), Fields üretmez ([a b]) Doğru cevap
- Aynıdır
- Fields hata verir
Açıklama: Split her ayraçta böler; iki boşluk arasında boş string kalır. Fields ardışık boşlukları tek ayraç sayar.
2 İlk ayraçta böl
k, v, ok := strings.____("ad=Ada", "=")
k, v, ok := strings.Cut("ad=Ada", "=")
Açıklama: Cut metni ilk ayraçta iki parçaya ayırır ve bulunup bulunmadığını söyler.
3 Grubun özeti
| Kavram | Anlamı |
|---|---|
len(s) |
Bayt sayısı |
[]rune(s) |
Karakterler |
strconv.Atoi |
Metinden sayı |
strings.Builder |
Verimli birleştirme |