Константа runtime.GOARCH

Константа runtime.GOARCH предоставляет доступ к архитектуре процессора, под которую была скомпилирована программа на Go. Она возвращает строку, содержащую архитектурное название, например, "amd64", "arm64", "386" или "wasm". Эта константа определяется во время компиляции и не может быть изменена во время выполнения программы.

Синтаксис

goruntime.GOARCH

Пример

Давайте получим архитектуру процессора текущей программы:

gopackage main

import (
  "fmt"
  "runtime"
)

func main() {
  res := runtime.GOARCH
  fmt.Println(res)
}

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

go"amd64"

Пример

Рассмотрим пример, где архитектура определяет поведение программы. Напишем функцию, которая выводит информацию о платформе:

gopackage main

import (
  "fmt"
  "runtime"
)

func main() {
  arch := runtime.GOARCH
  if arch == "amd64" || arch == "386" {
    fmt.Println("x86 architecture:", arch)
  } else if arch == "arm" || arch == "arm64" {
    fmt.Println("ARM architecture:", arch)
  } else {
    fmt.Println("Unknown architecture:", arch)
  }
}

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

go"x86 architecture: amd64"

Пример

Сравним runtime.GOARCH с другими системными параметрами, чтобы получить полную информацию о платформе:

gopackage main

import (
  "fmt"
  "runtime"
)

func main() {
  fmt.Println("Architecture:", runtime.GOARCH)
  fmt.Println("OS:", runtime.GOOS)
  fmt.Println("Compiler:", runtime.Compiler)
  fmt.Println("CPU cores:", runtime.NumCPU())
}

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

go"Architecture: amd64"
"OS: linux"
"Compiler: gc"
"CPU cores: 8"

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

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