GoDasturchi
Scanner Split Functions

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.

example.go
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.

Hints (0/3)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

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.

example.go
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.

Hints (0/3)

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