Scanner Split Functions
Scanner'ning bo'lish funksiyalari
bufio.Scanner sukut bo'yicha qatorlar bo'yicha o'qiydi (bufio.ScanLines), lekin unga boshqa "bo'lish qoidasi" (split function) berish mumkin — masalan, so'zlar bo'yicha yoki hatto harflar bo'yicha.
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
os.WriteFile("data.txt", []byte("bir ikki uch\n"), 0644)
f, _ := os.Open("data.txt")
defer f.Close()
wordScanner := bufio.NewScanner(f)
wordScanner.Split(bufio.ScanWords)
count := 0
for wordScanner.Scan() {
count++
}
fmt.Println("so'zlar soni:", count)
}scanner.Split(bufio.ScanWords) — Scanner'ga "endi qator emas, so'z-so'z o'qi" deb buyuradi (so'zlar bo'sh joy bilan ajratiladi). Boshqa tayyor variantlar: bufio.ScanRunes (harf-harf) va bufio.ScanBytes (bayt-bayt). Bu — bitta vositani turli vazifalar uchun moslashtirishning yaxshi namunasi.
>_ Exercise
poem.txt faylidagi so'zlar sonini hisoblang.
- •poem.txt ni oching
- •Scanner'ni bufio.ScanWords bilan sozlang
- •so'zlar sonini hisoblab "So'zlar: N" ko'rinishida chop eting
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
Scanner.Split yordamida bir xil vositani qator, so'z, harf yoki bayt bo'yicha o'qishga moslash mumkin.
NEXT UP
Path Basics with filepath
$ go run main.go
Kodingizni ishga tushiring