CodeBlanks Logo Icon CodeBlanks

String birleştirme

+ 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) Join

Az 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 3

Builder 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

main.go
package main

import (
    "fmt"
    "strings"
)

func main() {
    // buraya yaz
}

Örnek çözüm

main.go
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

Soru
liste := strings.____([]string{"elma", "armut"}, ", ")
Cevap
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

Başlangıç bölümündeki tüm dersler