Функция runtime.Version
Функция runtime.Version возвращает строку,
содержащую информацию о версии Go, которая была
использована для сборки текущего исполняемого файла.
Она не принимает никаких параметров и возвращает
строку в формате "go1.23.4" или аналогичном.
Синтаксис
runtime.Version()
Пример
Давайте получим и выведем версию Go, используемую для сборки нашей программы:
package main
import (
"fmt"
"runtime"
)
func main() {
version := runtime.Version()
fmt.Println(version)
}
Результат выполнения кода:
"go1.23.4"
Пример
Давайте используем полученную версию для условной проверки и выполнения различного кода в зависимости от версии Go:
package 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")
}
}
Результат выполнения кода:
"Текущая версия: go1.23.4"
"Используется Go 1.23 или новее"
Пример
Функция может вернуть не только номер версии, но и дополнительную информацию о сборке. Давайте выведем версию и сравним её с минимальной требуемой версией:
package 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: go1.23.4"
"Major: 1, Minor: 23"
Смотрите также
-
функцию
runtime.GOMAXPROCS,
которая управляет количеством используемых процессоров -
функцию
runtime.NumCPU,
которая возвращает количество логических процессоров -
константу
runtime.GOOS,
которая содержит название операционной системы -
константу
runtime.GOARCH,
которая содержит архитектуру процессора