Преобразование в string

В Go преобразование в строку может выполняться двумя основными способами: с помощью явного приведения типа для базовых строкоподобных типов и с использованием функций пакета strconv для числовых типов. Первый способ подходит для преобразования []byte или []rune в строку, второй - для преобразования чисел различных форматов.

Преобразование byte в string

Давайте преобразуем срез байтов в строку:

gopackage main

import "fmt"

func main() {
  b := []byte{104, 101, 108, 108, 111}
  res := string(b)
  fmt.Println(res)
}

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

go"hello"

Преобразование rune в string

Преобразуем срез рун в строку:

gopackage main

import "fmt"

func main() {
  r := []rune{72, 101, 108, 108, 111}
  res := string(r)
  fmt.Println(res)
}

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

go"Hello"

Преобразование int в string

Для преобразования целых чисел используется функция strconv.Itoa:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  num := 12345
  res := strconv.Itoa(num)
  fmt.Println(res)
}

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

go"12345"

Преобразование int64 в string

Преобразуем число типа int64 в строку с помощью strconv.FormatInt:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  num := int64(98765)
  res := strconv.FormatInt(num, 10)
  fmt.Println(res)
}

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

go"98765"

Преобразование float64 в string

Для преобразования чисел с плавающей точкой используется функция strconv.FormatFloat:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  num := 123.456
  res := strconv.FormatFloat(num, 'f', 2, 64)
  fmt.Println(res)
}

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

go"123.46"

Преобразование bool в string

Функция strconv.FormatBool преобразует булево значение в строку:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  flag := true
  res := strconv.FormatBool(flag)
  fmt.Println(res)
}

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

go"true"

Преобразование с указанием основания

Функция strconv.FormatInt позволяет указать основание системы счисления:

gopackage main

import (
  "fmt"
  "strconv"
)

func main() {
  num := int64(255)
  res := strconv.FormatInt(num, 16)
  fmt.Println(res)
}

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

go"ff"

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

  • функцию strconv.Itoa,
    которая преобразует целое число в строку
  • функцию strconv.FormatInt,
    которая преобразует целое число в строку с указанием основания
  • функцию strconv.FormatFloat,
    которая преобразует число с плавающей точкой в строку
  • функцию strconv.FormatBool,
    которая преобразует булево значение в строку