Глагол форматирования %q

Глагол форматирования %q в пакете fmt используется для вывода строковых значений в двойных кавычках с экранированием специальных символов. В качестве аргумента он принимает значение типа string или []byte и возвращает строку, заключенную в двойные кавычки, с экранированными управляющими последовательностями. Этот глагол полезен при отладке, логировании и формировании читаемого вывода строковых данных.

Синтаксис

gofmt.Printf("%q", value)

Пример вывода простой строки

Давайте выведем строку abcde с использованием глагола %q:

gopackage main

import "fmt"

func main() {
  res := fmt.Sprintf("%q", "abcde")
  fmt.Println(res)
}

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

go"abcde"

Пример вывода строки со специальными символами

Выведем строку, содержащую символ табуляции и новой строки:

gopackage main

import "fmt"

func main() {
  res := fmt.Sprintf("%q", "a\tb\nc")
  fmt.Println(res)
}

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

go"a\tb\nc"

Пример вывода пустой строки

Выведем пустую строку с помощью %q:

gopackage main

import "fmt"

func main() {
  res := fmt.Sprintf("%q", "")
  fmt.Println(res)
}

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

go""

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

  • глагол %s,
    который выводит строку без кавычек
  • глагол %v,
    который выводит значение в формате по умолчанию
  • глагол %#v,
    который выводит представление значения в виде кода Go
  • функцию fmt.Sprintf,
    которая форматирует строку без вывода в консоль