0Pricing
Go Academy · Ders

Tarayıcılar

Satır satır okuyun

Tarayıcılar, 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.

bufio.Scanner Nedir

bufio.Scanner, girdiyi belirteç belirteç, çoğunlukla da satır satır okumanın en kolay yoludur.

Arabelleğe alma ve sınırlayıcı işleme ayrıntılarını gizler, sondaki satır sonunu da sizin için kaldırır.

Satırları Tarama

Bir tarayıcı oluşturun; ardından sona gelindiğinde false döndüren Scan() ile döngü kurun. Geçerli belirteci Text() ile okuyun.

package main

import (
	"bufio"
	"fmt"
	"strings"
)

func main() {
	s := bufio.NewScanner(strings.NewReader("one\ntwo\nthree"))
	for s.Scan() {
		fmt.Println("line:", s.Text())
	}
}

Kelimeleri Tarama

Satırlar yerine boşluklara göre belirteçlere ayırmak için bölme işlevini Split(bufio.ScanWords) ile ayarlayın.

package main

import (
	"bufio"
	"fmt"
	"strings"
)

func main() {
	s := bufio.NewScanner(strings.NewReader("the quick brown fox"))
	s.Split(bufio.ScanWords)
	for s.Scan() {
		fmt.Println(s.Text())
	}
}

Belirteçleri Sayma

Tarayıcılarla sayma işlemi çok kolaydır. Burada kelimeleri sayıyoruz.

package main

import (
	"bufio"
	"fmt"
	"strings"
)

func main() {
	s := bufio.NewScanner(strings.NewReader("a b c d e"))
	s.Split(bufio.ScanWords)
	count := 0
	for s.Scan() {
		count++
	}
	fmt.Println("words:", count)
}

Bytes ve Text Karşılaştırması

Text() bir dize kopyası döndürür. Bytes() sonraki Scan() çağrısında yeniden kullanılan temel dilimi döndürür; onu korumanız gerekiyorsa kopyalayın.

package main

import (
	"bufio"
	"fmt"
	"strings"
)

func main() {
	s := bufio.NewScanner(strings.NewReader("data"))
	s.Scan()
	fmt.Println(len(s.Bytes()), "bytes")
}

Karakterleri Tarama

bufio.ScanRunes, girdiyi UTF-8 karakterlerine ayırır; her karakter bir belirteç olur.

package main

import (
	"bufio"
	"fmt"
	"strings"
)

func main() {
	s := bufio.NewScanner(strings.NewReader("Gö"))
	s.Split(bufio.ScanRunes)
	for s.Scan() {
		fmt.Printf("[%s]", s.Text())
	}
	fmt.Println()
}

Hataları Denetleme

Scan() işlevinin false döndürmesi EOF veya bir hata anlamına gelebilir. Döngüden sonra bunları ayırt etmek için s.Err() çağrısını yapın.

package main

import (
	"bufio"
	"fmt"
	"strings"
)

func main() {
	s := bufio.NewScanner(strings.NewReader("ok\nfine"))
	for s.Scan() {
		fmt.Println(s.Text())
	}
	if err := s.Err(); err != nil {
		fmt.Println("error:", err)
	}
}

Belirteç Boyutu Sınırı

Varsayılan olarak tek bir belirteç bufio.MaxScanTokenSize değerini (64KB) aşamaz. Daha uzun bir satır, Scan() işlevinin bir hatayla durmasına neden olur.

Arabelleği Büyütme

Daha büyük belirteçlere izin vermek için Buffer(buf, max) kullanın. Başlangıç arabelleğini ve en büyük boyutu geçirin.

package main

import (
	"bufio"
	"fmt"
	"strings"
)

func main() {
	s := bufio.NewScanner(strings.NewReader("long line here"))
	buf := make([]byte, 0, 1024)
	s.Buffer(buf, 1024*1024)
	for s.Scan() {
		fmt.Println(s.Text())
	}
}

Özel Split İşlevleri

Bir bölme işlevinin imzası func(data []byte, atEOF bool) (advance int, token []byte, err error) biçimindedir. Virgüllere, sabit genişliklere veya istediğiniz herhangi bir şeye göre bölebilirsiniz.

Scanner ve Reader Karşılaştırması

  • Scanner: basit, satır/kelime belirteçleri, satır sonlarını otomatik olarak kaldırır, varsayılan 64KB sınırı
  • Reader: tam denetim, boyut sınırı yok, sınırlayıcıları elle işleme

Önce Scanner'ı tercih edin; daha fazlasına ihtiyaç duyduğunuzda Reader'a geçin.

Hızlı Kontrol

Tarayıcı bilginizi sınayın.

Özet

bufio.Scanner ile girdiyi belirteç belirteç okumayı öğrendiniz.

  • Scan() + Text()/Bytes() döngüsü
  • Split ile ScanLines/ScanWords/ScanRunes
  • Döngüden sonra Err() değerini denetleyin
  • 64KB üzerindeki belirteçler için Buffer kullanın

Sıkça Sorulan Sorular

“Tarayıcılar” dersi ücretsiz mi?

Evet — “Tarayıcılar” 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.

“Tarayıcılar” dersinde ne öğreneceğim?

Satır satır okuyun 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.

“Tarayıcılar” 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. Arabelleğe Alınmış Okuyucular
  2. Tarayıcılar
  3. Arabelleğe Alınmış Yazıcılar
  4. Büyük Dosyaları Akışla İşleme
← Go Academy Sayfasına Dön