bufio.Writer.WriteRune

Метод bufio.Writer.WriteRune записывает один Unicode символ (руну) в буферизированный поток вывода. В качестве первого параметра метод принимает значение типа rune. Возвращает два значения: количество записанных байт и ошибку error. Если запись прошла успешно, ошибка будет равна nil. Метод используется в связке с буферизированным писателем, созданным через bufio.NewWriter.

Синтаксис

gowriter.WriteRune(r rune) (int, error)

Пример

Давайте запишем руну 'А' в буферизированный вывод:

gopackage main

import (
  "bufio"
  "fmt"
  "os"
)

func main() {
  writer := bufio.NewWriter(os.Stdout)
  defer writer.Flush()

  n, err := writer.WriteRune('А')
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Printf("\nWritten bytes: %d", n)
}

Результат выполнения кода:

go"А"
"Written bytes: 2"

Пример

Давайте запишем несколько рун в буферизированный вывод, включая символы из разных алфавитов:

gopackage main

import (
  "bufio"
  "fmt"
  "os"
)

func main() {
  writer := bufio.NewWriter(os.Stdout)
  defer writer.Flush()

  runes := []rune{'A', 'Б', 'C', 'Д', 'E'}

  for _, r := range runes {
    n, err := writer.WriteRune(r)
    if err != nil {
      fmt.Println("Error:", err)
      return
    }
    fmt.Printf("Rune %c wrote %d bytes\n", r, n)
  }
}

Результат выполнения кода:

go"AБCДЕ"
"Rune A wrote 1 bytes"
"Rune Б wrote 2 bytes"
"Rune C wrote 1 bytes"
"Rune Д wrote 2 bytes"
"Rune E wrote 1 bytes"

Смотрите также

  • метод bufio.Writer.Write,
    который записывает срез байт в буфер
  • метод bufio.Writer.WriteString,
    который записывает строку в буфер
  • метод bufio.Writer.WriteByte,
    который записывает один байт в буфер
  • метод bufio.Writer.Flush,
    который сбрасывает буфер в основной поток вывода