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üSplitile ScanLines/ScanWords/ScanRunes- Döngüden sonra
Err()değerini denetleyin - 64KB üzerindeki belirteçler için
Bufferkullanı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.