Константа runtime.Compiler
Константа runtime.Compiler возвращает строку,
которая содержит название компилятора, использованного
для сборки текущей программы. Она может принимать
значения "gc" (стандартный компилятор Go),
"gccgo" (компилятор GCC Go) или
"gollvm" (компилятор LLVM Go). Эта константа
полезна для написания кода, который должен по-разному
работать в зависимости от используемого компилятора.
Синтаксис
runtime.Compiler
Пример
Давайте получим название компилятора, использованного для сборки программы:
package main
import (
"fmt"
"runtime"
)
func main() {
compiler := runtime.Compiler
fmt.Println(compiler)
}
Результат выполнения кода:
"gc"
Пример
Давайте используем константу для условной компиляции кода в зависимости от компилятора:
package main
import (
"fmt"
"runtime"
)
func main() {
if runtime.Compiler == "gc" {
fmt.Println("Using standard Go compiler")
} else if runtime.Compiler == "gccgo" {
fmt.Println("Using GCC Go compiler")
} else {
fmt.Println("Using unknown compiler:", runtime.Compiler)
}
}
Результат выполнения кода:
"Using standard Go compiler"
Пример
Давайте используем константу для выбора оптимальной реализации в зависимости от компилятора:
package main
import (
"fmt"
"runtime"
)
func main() {
switch runtime.Compiler {
case "gc":
fmt.Println("Optimized implementation for gc")
case "gccgo":
fmt.Println("Optimized implementation for gccgo")
default:
fmt.Println("Generic implementation for:", runtime.Compiler)
}
}
Результат выполнения кода:
"Optimized implementation for gc"
Смотрите также
-
константу
runtime.GOOS,
которая возвращает название операционной системы -
константу
runtime.GOARCH,
которая возвращает архитектуру процессора -
функцию
runtime.Version,
которая возвращает версию Go -
функцию
runtime.NumCPU,
которая возвращает количество логических процессоров