Go Academy · Ders

io Yardımcı İşlevleri

Copy, TeeReader ve MultiWriter

3. ders / 413 adım

io Yardımcı İşlevleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 3. 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.

io Araç Kutusu

io paketi, okuyucuları ve yazıcıları birleştiren küçük ama güçlü yardımcılar sunar: Copy, TeeReader, MultiWriter ve daha fazlası.

io.Copy

io.Copy(dst, src), bir okuyucudaki tüm baytları bir yazıcıya akış hâlinde aktarır ve sayıyı döndürür.

package main

import (
	"fmt"
	"io"
	"os"
	"strings"
)

func main() {
	n, _ := io.Copy(os.Stdout, strings.NewReader("copied\n"))
	fmt.Println("bytes:", n)
}

io.CopyN

io.CopyN(dst, src, n) tam olarak n bayt kopyalar; bilinen uzunluktaki bir başlangıç bölümünü okumak için kullanışlıdır.

package main

import (
	"io"
	"os"
	"strings"
)

func main() {
	io.CopyN(os.Stdout, strings.NewReader("abcdef"), 3)
	os.Stdout.WriteString("\n")
}

io.MultiWriter

io.MultiWriter, tek bir yazma işleminin çıktısını aynı anda birkaç yazıcıya dağıtır; Unix'teki tee komutu gibi.

package main

import (
	"bytes"
	"fmt"
	"io"
	"os"
)

func main() {
	var buf bytes.Buffer
	w := io.MultiWriter(os.Stdout, &buf)
	io.WriteString(w, "to both\n")
	fmt.Println("buffer copy:", buf.String())
}

io.TeeReader

io.TeeReader(r, w), okuduğu her şeyi w içine kopyalayan bir okuyucu döndürür; veriler akarken günlükleme veya özetleme yapmak için idealdir.

package main

import (
	"bytes"
	"fmt"
	"io"
	"strings"
)

func main() {
	var spy bytes.Buffer
	tee := io.TeeReader(strings.NewReader("stream"), &spy)
	io.ReadAll(tee)
	fmt.Println("observed:", spy.String())
}

io.MultiReader

io.MultiReader, birkaç okuyucuyu kesintisiz tek bir akışta birleştirir.

package main

import (
	"fmt"
	"io"
	"strings"
)

func main() {
	r := io.MultiReader(strings.NewReader("Hello, "), strings.NewReader("World"))
	data, _ := io.ReadAll(r)
	fmt.Println(string(data))
}

io.Discard

io.Discard, her şeyi atan bir yazıcıdır; ihtiyacınız olmayan bir okuyucunun verilerini tüketmek için kullanışlıdır.

package main

import (
	"fmt"
	"io"
	"strings"
)

func main() {
	n, _ := io.Copy(io.Discard, strings.NewReader("ignored"))
	fmt.Println("discarded:", n, "bytes")
}

TeeReader ile Özetleme

Klasik bir birleşim şöyledir: Bir akışı asıl amacı için okurken bir TeeReader aynı baytları bir özete aktarır; böylece sağlama toplamını tek geçişte hesaplarsınız.

io.Pipe

io.Pipe, bir yazıcıyı bellek içinde bir okuyucuya bağlar; üretici/tüketici düzenlerinde, çoğunlukla goroutine'ler arasında akış sağlamak için kullanılır.

Doğru Yardımcıyı Seçme

  • Veri taşıma: Copy / CopyN
  • Çıktıyı çoğaltma: MultiWriter
  • Girdiyi gözlemleme: TeeReader
  • Girdileri birleştirme: MultiReader
  • Girdiyi tüketme: Discard

Birleştirilebilirlik

Bu yardımcıların tümü io.Reader/io.Writer ile çalışır; bu nedenle küçük parçalardan gelişmiş işlem hatları oluşturmak üzere serbestçe iç içe yerleştirilebilir ve zincirlenebilirler.

Hızlı Kontrol

io yardımcıları bilginizi sınayın.

Özet

io yardımcılarını öğrendiniz.

  • Copy / CopyN verileri akış hâlinde taşır
  • MultiWriter çıktıyı çoğaltır
  • TeeReader girdiyi gözlemler
  • MultiReader girdileri birleştirir, Discard verileri tüketir
  • Tümü Okuyucu/Yazıcı arayüzleri üzerinden birleştirilebilir
Başlamak ücretsiz

Yapay zeka eğitmeniyle Go öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
51
Dersler
203

Sıkça Sorulan Sorular

“io Yardımcı İşlevleri” dersi ücretsiz mi?

Evet — “io Yardımcı İşlevleri” 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.

“io Yardımcı İşlevleri” dersinde ne öğreneceğim?

Copy, TeeReader ve MultiWriter 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 3. dersidir.

“io Yardımcı İşlevleri” 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. Reader Arayüzü
  2. Writer Arayüzü
  3. io Yardımcı İşlevleri
  4. Özel Reader'lar Uygulama
← Go Academy Sayfasına Dön