String birleştirme
- Go kursu
- Başlangıç
- Ders 58/90
- 4 dk
+ ve fmt.Sprintf ile string birleştirmeyi öğrenirsin.
String birleştirme
Birkaç parçayı birleştirmenin üç yaygın yolu vardır:
ad, soyad := "Ada", "Lovelace"
tam := ad + " " + soyad // 1) + operatörü
tam = fmt.Sprintf("%s %s", ad, soyad) // 2) Sprintf
tam = strings.Join([]string{ad, soyad}, " ") // 3) JoinAz sayıda parça için +, biçim gerekiyorsa Sprintf, bir dilimi ayraçla birleştirirken Join en okunur seçenektir.
strings.Builder
strings.Builder metni parça parça ekleyip sonunda tek string üretir:
var b strings.Builder
for i := 1; i <= 3; i++ {
if i > 1 {
b.WriteString(", ")
}
fmt.Fprintf(&b, "madde %d", i)
}
fmt.Println(b.String()) // madde 1, madde 2, madde 3Builder bir io.Writer olduğu için fmt.Fprintf ile doğrudan yazılabilir; boyut biliniyorsa b.Grow(n) ile yer ayrılır.
Uygulama Liste metni
meyveler := []string{"elma", "armut", "kiraz"} dilimini strings.Join ile ", " ayracıyla birleştir ve fmt.Sprintf("%d meyve: %s", ...) ile yazdır.
Başlangıç kodu
package main
import (
"fmt"
"strings"
)
func main() {
// buraya yaz
}Örnek çözüm
package main
import (
"fmt"
"strings"
)
func main() {
meyveler := []string{"elma", "armut", "kiraz"}
fmt.Println(fmt.Sprintf("%d meyve: %s", len(meyveler), strings.Join(meyveler, ", ")))
}Beklenen çıktı
3 meyve: elma, armut, kiraz
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Döngüde binlerce parçayı birleştirmek için en verimli yol hangisidir?
- []rune'a ekleme
- strings.Builder Doğru cevap
- s += parca
- fmt.Sprintf her adımda
Açıklama: Builder baytları büyüyen bir tamponda toplar; += her adımda yeni string ayırıp kopyalar.
2 Ayraçla birleştir
liste := strings.____([]string{"elma", "armut"}, ", ")
liste := strings.Join([]string{"elma", "armut"}, ", ")
Açıklama: strings.Join dilim elemanlarını verilen ayraçla birleştirir.
3 Yöntem ve kullanım
| Kavram | Anlamı |
|---|---|
a + b |
Birkaç parça |
fmt.Sprintf |
Biçimli metin |
strings.Join |
Dilim + ayraç |
strings.Builder |
Döngüde çok parça |