Функция runtime.Version

Функция runtime.Version возвращает строку, содержащую информацию о версии Go, которая была использована для сборки текущего исполняемого файла. Она не принимает никаких параметров и возвращает строку в формате "go1.23.4" или аналогичном.

Синтаксис

goruntime.Version()

Пример

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

gopackage main

import (
  "fmt"
  "runtime"
)

func main() {
  version := runtime.Version()
  fmt.Println(version)
}

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

go"go1.23.4"

Пример

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

gopackage main

import (
  "fmt"
  "runtime"
  "strings"
)

func main() {
  version := runtime.Version()
  fmt.Printf("Текущая версия: %s\n", version)

  if strings.Contains(version, "go1.23") {
    fmt.Println("Используется Go 1.23 или новее")
  } else {
    fmt.Println("Используется более старая версия Go")
  }
}

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

go"Текущая версия: go1.23.4"
"Используется Go 1.23 или новее"

Пример

Функция может вернуть не только номер версии, но и дополнительную информацию о сборке. Давайте выведем версию и сравним её с минимальной требуемой версией:

gopackage main

import (
  "fmt"
  "runtime"
  "strconv"
  "strings"
)

func main() {
  version := runtime.Version()
  fmt.Printf("Версия Go: %s\n", version)

  // Извлекаем числовую часть версии
  verStr := strings.TrimPrefix(version, "go")
  parts := strings.Split(verStr, ".")
  if len(parts) >= 2 {
    major, _ := strconv.Atoi(parts[0])
    minor, _ := strconv.Atoi(parts[1])
    fmt.Printf("Major: %d, Minor: %d\n", major, minor)
  }
}

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

go"Версия Go: go1.23.4"
"Major: 1, Minor: 23"

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

  • функцию runtime.GOMAXPROCS,
    которая управляет количеством используемых процессоров
  • функцию runtime.NumCPU,
    которая возвращает количество логических процессоров
  • константу runtime.GOOS,
    которая содержит название операционной системы
  • константу runtime.GOARCH,
    которая содержит архитектуру процессора