0Pricing
Go Academy · Ders

Sprintf ve Fprintf

Dizelere ve yazıcılara biçimlendirin

Sprintf ve Fprintf, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Printf Ailesi

fmt paketinde birbirine benzeyen üç biçimlendirme işlevi vardır:

  • Printf standart çıktıya yazar.
  • Sprintf biçimlendirilmiş bir dize döndürür.
  • Fprintf herhangi bir yazıcıya yazar.
package main

import "fmt"

func main() {
    fmt.Printf("hello %s\n", "world")
}

Sprintf Bir Dize Döndürür

fmt.Sprintf, Printf ile tamamen aynı şekilde biçimlendirir; ancak yazdırmak yerine sonucu depolayabileceğiniz veya yeniden kullanabileceğiniz bir dize olarak döndürür.

package main

import "fmt"

func main() {
    msg := fmt.Sprintf("%s scored %d", "Bob", 95)
    fmt.Println(msg)
}

Tanımlayıcılar Oluşturma

Sprintf; anahtarları, dosya adlarını veya etiketleri parçalardan oluşturmak için kullanışlıdır.

package main

import "fmt"

func main() {
    id := fmt.Sprintf("user-%04d", 42)
    fmt.Println(id)
}

Sayıları Metne Biçimlendirme

Sayıları para birimi gibi düzgün biçimlendirilmiş dizelere dönüştürmek için Sprintf kullanın.

package main

import "fmt"

func main() {
    label := fmt.Sprintf("Price: $%.2f", 7.5)
    fmt.Println(label)
}

Fprintf Bir Yazıcıya Yazar

fmt.Fprintf, ilk bağımsız değişken olarak bir io.Writer alır ve biçimlendirilmiş içeriği ona yazar. os.Stdout böyle bir yazıcıdır.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Fprintf(os.Stdout, "to stdout: %d\n", 1)
}

Standart Hata Akışına Yazma

Tanılama bilgilerini os.Stderr akışına Fprintf ile göndererek normal çıktıdan ayrı tutun.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Fprintf(os.Stderr, "warning: %s\n", "low disk")
}

Fprintf ile Builder'a Yazma

strings.Builder aynı zamanda bir io.Writer olduğundan içeriği doğrudan ona biçimlendirebilir ve sonunda dizeyi okuyabilirsiniz.

package main

import (
    "fmt"
    "strings"
)

func main() {
    var b strings.Builder
    fmt.Fprintf(&b, "%s=%d;", "x", 10)
    fmt.Fprintf(&b, "%s=%d", "y", 20)
    fmt.Println(b.String())
}

Fprintf ile bytes.Buffer'a Yazma

bytes.Buffer da yaygın olarak kullanılan başka bir yazıcı hedefidir. İçeriği oluşturun, ardından bir dizeye dönüştürün.

package main

import (
    "bytes"
    "fmt"
)

func main() {
    var buf bytes.Buffer
    fmt.Fprintf(&buf, "row %d\n", 1)
    fmt.Fprintf(&buf, "row %d\n", 2)
    fmt.Print(buf.String())
}

f Olmadan Sprint ve Fprint

f içeren sürümler bir biçimlendirme dizesi alır. Sprint/Fprint için f'yi kaldırırsanız bağımsız değişkenleri varsayılan biçimlendirmeyle basitçe birleştirirler.

package main

import "fmt"

func main() {
    s := fmt.Sprint("a", 1, true)
    fmt.Println(s)
}

Sprintln Boşluk Ekler

fmt.Sprintln, bağımsız değişkenleri boşluklarla birleştirir, satır sonu ekler ve dizeyi döndürür.

package main

import "fmt"

func main() {
    s := fmt.Sprintln("x", 1, "y", 2)
    fmt.Print(s)
}

Doğru Aracı Seçme

Hedefe göre seçim yapın:

  • Bir dizeye mi ihtiyacınız var? Sprintf kullanın.
  • Standart çıktıya mı yazıyorsunuz? Printf kullanın.
  • Bir dosyaya, arabelleğe veya hata akışına mı yazıyorsunuz? Fprintf kullanın.
package main

import (
    "fmt"
    "os"
)

func main() {
    s := fmt.Sprintf("count=%d", 3)
    fmt.Fprintf(os.Stdout, "%s\n", s)
}

Hızlı Kontrol

Biçimlendirilmiş metni yazdırmak yerine hangi işlev döndürür?

Özet: Sprintf ve Fprintf

Biçimlendirme ailesini öğrendiniz:

  • Sprintf bir dize döndürür.
  • Fprintf herhangi bir io.Writer'a yazar (standart çıktı, standart hata, arabellekler, oluşturucular).
  • f içermeyen sürümler varsayılan biçimlendirmeyi kullanır.
package main

import (
    "fmt"
    "strings"
)

func main() {
    var b strings.Builder
    fmt.Fprintf(&b, "result=%s", fmt.Sprintf("%d%%", 80))
    fmt.Println(b.String())
}

Sıkça Sorulan Sorular

“Sprintf ve Fprintf” dersi ücretsiz mi?

Evet — “Sprintf ve Fprintf” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Sprintf ve Fprintf” dersinde ne öğreneceğim?

Dizelere ve yazıcılara biçimlendirin Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Sprintf ve Fprintf” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Printf Fiilleri
  2. Sprintf ve Fprintf
  3. Stringer Arayüzü
  4. Girdiyi Tarama
← Go Academy Sayfasına Dön