Функция strconv.UnquoteChar

Функция strconv.UnquoteChar извлекает первый экранированный символ из строки, декодируя управляющие последовательности. Она возвращает три значения: сам символ в виде rune, его ширину в байтах и ошибку, если строка содержит неверный синтаксис экранирования. В первый параметр передается строка для анализа, во второй параметр - позиция начала разбора, в третий параметр - признак использования кавычек для экранирования.

Синтаксис

gostrconv.UnquoteChar(s string, quote byte) (value rune, multibyte bool, tail string, err error)

Пример

Давайте извлечем экранированный символ из строки с управляющей последовательностью:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  s := `\nHello`
  value, _, _, err := strconv.UnquoteChar(s, 0)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Printf("%c\n", value)
}

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

go\n

Пример

Давайте извлечем шестнадцатеричный экранированный символ из строки:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  s := `\x41BC`
  value, _, _, err := strconv.UnquoteChar(s, 0)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Printf("%c\n", value)
}

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

go"A"

Пример

Давайте извлечем восьмеричный экранированный символ из строки:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  s := `\101BC`
  value, _, _, err := strconv.UnquoteChar(s, 0)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Printf("%c\n", value)
}

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

go"A"

Пример

Давайте извлечем символ Unicode из строки с управляющей последовательностью:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  s := `\u0041BC`
  value, _, _, err := strconv.UnquoteChar(s, 0)
  if err != nil {
    fmt.Println("Error:", err)
    return
  }
  fmt.Printf("%c\n", value)
}

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

go"A"

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

  • функцию strconv.Quote,
    которая экранирует строку в кавычках
  • функцию strconv.Unquote,
    которая удаляет кавычки и экранирует строку целиком
  • функцию strconv.QuoteRune,
    которая экранирует руну в кавычках
  • функцию strconv.CanBackquote,
    которая проверяет возможность использования обратных кавычек