Junior
Hierogliflar, kirill yozuvi va boshqa belgilardan iborat satrni qanday o'qish mumkin?
sobes.tech AI
AIdan javob
Golangda satrlar standart tarzda UTF-8 formatida taqdim etiladi, bu esa turli alfavitlardan belgilarga, jumladan, hierogliflar va kirill alifbosiga ishlashni osonlashtiradi. Bunday satrlarni o'qish uchun standart funksiyalar va paketlardan foydalanish kifoya.
Fayldan o'qish:
import (
"bufio"
"fmt"
"os"
)
func readStringFromFile(filename string) error {
file, err := os.Open(filename)
if err != nil {
return fmt.Errorf("faylni ochishda xato: %w", err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text() // Satr allaqachon UTF-8
fmt.Println(line)
}
if err := scanner.Err(); err != nil {
return fmt.Errorf("faylni skanerlashda xato: %w", err)
}
return nil
}
Standart kirishdan o'qish:
import (
"bufio"
"fmt"
"os"
)
func readStringFromStdin() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Satir kiriting: ")
line, _ := reader.ReadString('\n') // Satir baytlar slice sifatida o'qiladi va keyin stringga aylantiriladi (UTF-8)
fmt.Println("Siz kiritdingiz:", line)
}
Belgilar (rune) bo'yicha iteratsiya:
import "fmt"
func iterateString(s string) {
for i, r := range s { // Range Unicode kod nuqtalari (rune) bo'yicha iteratsiya qiladi
fmt.Printf("Pozitsiya: %d, Runa: %c, Kod nuqtasi: %U\n", i, r, r)
}
}
Asosiy nuqtalar:
- Golang satrlari o'zgarmas baytlar ketma-ketligidir.
- Standartda UTF-8 kodlash ishlatiladi. Bu turli tillardagi belgilarni to'g'ri ifodalashni ta'minlaydi.
rangeyordamida satr bo'yicha iteratsiya har bir rune (Unicode kod nuqtasi) ni, har bir baytni emas, ishlov beradi.
Qo'shimcha:
Agar manba ma'lumotlari UTF-8 bo'lmasa, kodlashni konvertatsiya qilish uchun standart kutubxona paketlari yoki tashqi kutubxonalar, masalan, golang.org/x/text/encoding ishlatilishi mumkin.