Spec-Zone.ru › Go

Пакет builtin

  • import "builtin"
  • Обзор
  • Указатель

Обзор

Пакет builtin содержит документацию по предварительно объявленным идентификаторам Go. Описанные здесь элементы фактически не входят в пакет builtin, но их описание позволяет godoc отображать документацию по специальным идентификаторам языка.

Указатель

  • Константы
  • Переменные
  • func append(slice []Type, elems ...Type) []Type
  • func cap(v Type) int
  • func clear[T ~[]Type | ~map[Type]Type1](t T)
  • func close(c chan<- Type)
  • func complex(r, i FloatType) ComplexType
  • func copy(dst, src []Type) int
  • func delete(m map[Type]Type1, key Type)
  • func imag(c ComplexType) FloatType
  • func len(v Type) int
  • func make(t Type, size ...IntegerType) Type
  • func max[T cmp.Ordered](x T, y ...T) T
  • func min[T cmp.Ordered](x T, y ...T) T
  • func new(TypeOrExpr) *Type
  • func panic(v any)
  • func print(args ...Type)
  • func println(args ...Type)
  • func real(c ComplexType) FloatType
  • func recover() any
  • type ComplexType
  • type FloatType
  • type IntegerType
  • type Type
  • type Type1
  • type TypeOrExpr
  • type any
  • type bool
  • type byte
  • type comparable
  • type complex128
  • type complex64
  • type error
  • type float32
  • type float64
  • type int
  • type int16
  • type int32
  • type int64
  • type int8
  • type rune
  • type string
  • type uint
  • type uint16
  • type uint32
  • type uint64
  • type uint8
  • type uintptr

Файлы пакета

builtin.go

Константы

true и false — два нетипизированных логических значения.

const (
    true  = 0 == 0 // Untyped bool.
    false = 0 != 0 // Untyped bool.
)

iota — предварительно объявленный идентификатор, представляющий порядковый номер текущей спецификации const (начиная с нуля) в объявлении const (обычно заключённом в круглые скобки).

const iota = 0 // Untyped int.

Переменные

nil — предварительно объявленный идентификатор, представляющий нулевое значение для типов указателей, каналов, функций, интерфейсов, отображений и срезов.

var nil Type // Type must be a pointer, channel, func, interface, map, or slice type

func append

func append(slice []Type, elems ...Type) []Type

Встроенная функция append добавляет элементы в конец среза. Если его ёмкости достаточно, целевой срез меняет длину, чтобы вместить новые элементы. Если ёмкости недостаточно, будет выделен новый базовый массив. Функция append возвращает обновлённый срез. Поэтому результат append необходимо сохранять, часто — в переменную, содержащую сам срез:

slice = append(slice, elem1, elem2)
slice = append(slice, anotherSlice...)

В особом случае допустимо добавить строку в срез байтов, например так:

slice = append([]byte("hello "), "world"...)

func cap

func cap(v Type) int

Встроенная функция cap возвращает ёмкость v в соответствии с его типом:

  • Массив: количество элементов в v (то же, что len(v)).
  • Указатель на массив: количество элементов в *v (то же, что len(v)).
  • Срез: максимальная длина, которой может достичь срез при изменении его длины; если v равен nil, cap(v) равен нулю.
  • Канал: ёмкость буфера канала в единицах элементов; если v равен nil, cap(v) равен нулю.

Для некоторых аргументов, например простого выражения с массивом, результат может быть константой. Подробности см. в разделе «Длина и ёмкость» спецификации языка Go.

func clear

func clear[T ~[]Type | ~map[Type]Type1](t T)

Встроенная функция clear очищает отображения и срезы. Для отображений clear удаляет все записи, в результате чего отображение становится пустым. Для срезов clear устанавливает для всех элементов до длины среза нулевое значение соответствующего типа элемента. Если тип аргумента является параметром типа, множество типов этого параметра должно содержать только типы отображений или срезов, а clear выполняет операцию, соответствующую аргументу типа. Если t равен nil, clear ничего не делает.

func close

func close(c chan<- Type)

Встроенная функция close закрывает канал, который должен быть двунаправленным или предназначенным только для отправки. Её должен вызывать только отправитель, но не получатель. В результате канал закрывается после получения последнего отправленного значения. После получения последнего значения из закрытого канала c любая операция получения из c завершается без блокировки и возвращает нулевое значение для элемента канала. Форма

x, ok := <-c

также присвоит ok значение false, если канал закрыт и пуст.

func complex

func complex(r, i FloatType) ComplexType

Встроенная функция complex создаёт комплексное значение из двух значений с плавающей точкой. Действительная и мнимая части должны иметь одинаковый размер — float32 или float64 (либо быть присваиваемыми им), а возвращаемое значение будет соответствующего комплексного типа (complex64 для float32, complex128 для float64).

func copy

func copy(dst, src []Type) int

Встроенная функция copy копирует элементы из исходного среза в целевой срез. (В особом случае она также копирует байты из строки в срез байтов.) Исходный и целевой срезы могут перекрываться. Copy возвращает количество скопированных элементов, равное минимуму len(src) и len(dst).

func delete

func delete(m map[Type]Type1, key Type)

Встроенная функция delete удаляет из отображения элемент с указанным ключом (m[key]). Если m равен nil или такого элемента нет, delete ничего не делает.

func imag

func imag(c ComplexType) FloatType

Встроенная функция imag возвращает мнимую часть комплексного числа c. Возвращаемое значение будет иметь тип с плавающей точкой, соответствующий типу c.

func len

func len(v Type) int

Встроенная функция len возвращает длину v в соответствии с его типом:

  • Массив: количество элементов в v.
  • Указатель на массив: количество элементов в *v (даже если v равен nil).
  • Срез или отображение: количество элементов в v; если v равен nil, len(v) равен нулю.
  • Строка: количество байтов в v.
  • Канал: количество элементов в очереди (непрочитанных) в буфере канала; если v равен nil, len(v) равен нулю.

Для некоторых аргументов, например строкового литерала или простого выражения с массивом, результат может быть константой. Подробности см. в разделе «Длина и ёмкость» спецификации языка Go.

func make

func make(t Type, size ...IntegerType) Type

Встроенная функция make выделяет и инициализирует объект только типа среза, отображения или канала. Как и в случае с new, первый аргумент — это тип, а не значение. В отличие от new, make возвращает значение того же типа, что и его аргумент, а не указатель на него. Результат зависит от типа:

  • Срез: размер задаёт длину. Ёмкость среза равна его длине. Можно указать второй целочисленный аргумент, чтобы задать другую ёмкость; она не должна быть меньше длины. Например, make([]int, 0, 10) выделяет базовый массив размером 10 и возвращает срез длины 0 и ёмкости 10, использующий этот базовый массив.
  • Отображение: выделяется пустое отображение с достаточным пространством для указанного числа элементов. Размер можно опустить — в этом случае выделяется небольшое начальное пространство.
  • Канал: буфер канала инициализируется указанной ёмкостью. Если размер равен нулю или не указан, канал небуферизованный.

func max

func max[T cmp.Ordered](x T, y ...T) T

Встроенная функция max возвращает наибольшее значение из фиксированного числа аргументов типов cmp.Ordered. Должен быть указан хотя бы один аргумент. Если T — тип с плавающей точкой и хотя бы один из аргументов — NaN, max вернёт NaN.

func min

func min[T cmp.Ordered](x T, y ...T) T

Встроенная функция min возвращает наименьшее значение из фиксированного числа аргументов типов cmp.Ordered. Должен быть указан хотя бы один аргумент. Если T — тип с плавающей точкой и хотя бы один из аргументов — NaN, min вернёт NaN.

func new

func new(TypeOrExpr) *Type

Встроенная функция new выделяет новую инициализированную переменную и возвращает указатель на неё. Она принимает один аргумент, которым может быть тип или выражение. Если аргумент — тип T, то new(T) выделяет переменную типа T и инициализирует её нулевым значением. В противном случае аргументом является выражение x, и new(x) выделяет переменную типа выражения x и инициализирует её значением x. Если это значение — нетипизированная константа, сначала она неявно преобразуется к своему типу по умолчанию.

func panic

func panic(v any)

Встроенная функция panic останавливает нормальное выполнение текущей горутины. Когда функция F вызывает panic, её нормальное выполнение немедленно прекращается. Все функции, отложенные вызовом F, выполняются обычным образом, после чего F возвращает управление вызывающей функции. Для вызывающей функции G вызов F затем ведёт себя как вызов panic: выполнение G прекращается, а все отложенные функции выполняются. Это продолжается, пока не остановятся все функции выполняющейся горутины, в обратном порядке. После этого программа завершается с ненулевым кодом выхода. Эта последовательность завершения называется паникой, и управлять ею можно с помощью встроенной функции recover.

Начиная с Go 1.21 вызов panic с нулевым значением интерфейса или нетипизированным nil приводит к ошибке времени выполнения (другой панике). Настройка GODEBUG panicnil=1 отключает эту ошибку времени выполнения.

func print

func print(args ...Type)

Встроенная функция print форматирует аргументы способом, зависящим от реализации, и записывает результат в стандартный поток ошибок. Print полезна для начальной загрузки и отладки; нет гарантии, что она останется в языке.

func println

func println(args ...Type)

Встроенная функция println форматирует аргументы способом, зависящим от реализации, и записывает результат в стандартный поток ошибок. Между аргументами всегда добавляются пробелы, а в конце — символ новой строки. Println полезна для начальной загрузки и отладки; нет гарантии, что она останется в языке.

func real

func real(c ComplexType) FloatType

Встроенная функция real возвращает действительную часть комплексного числа c. Возвращаемое значение будет иметь тип с плавающей точкой, соответствующий типу c.

func recover

func recover() any

Встроенная функция recover позволяет программе управлять поведением горутины, в которой произошла паника. Вызов recover внутри отложенной функции (но не внутри функции, вызванной этой отложенной функцией) останавливает последовательность паники, восстанавливает нормальное выполнение и возвращает значение ошибки, переданное вызову panic. Если recover вызвана вне отложенной функции, она не остановит последовательность паники. В этом случае или если в горутине не происходит паника, recover возвращает nil.

До Go 1.21 recover также возвращала nil, если panic вызывалась с аргументом nil. Подробности см. в разделе [panic].

type ComplexType

ComplexType приведён только для целей документации. Он служит заменой любому комплексному типу: complex64 или complex128.

type ComplexType complex64

type FloatType

FloatType приведён только для целей документации. Он служит заменой любому типу с плавающей точкой: float32 или float64.

type FloatType float32

type IntegerType

IntegerType приведён только для целей документации. Он служит заменой любому целочисленному типу: int, uint, int8 и т. д.

type IntegerType int

type Type

Type приведён только для целей документации. Он служит заменой любому типу Go, но для каждого отдельного вызова функции представляет один и тот же тип.

type Type int

type Type1

Type1 приведён только для целей документации. Он служит заменой любому типу Go, но для каждого отдельного вызова функции представляет один и тот же тип.

type Type1 int

type TypeOrExpr

TypeOrExpr приведён только для целей документации. Он служит заменой типу Go или выражению.

type TypeOrExpr int

type any

any — это псевдоним interface{} и во всех отношениях эквивалентен interface{}.

type any = interface{}

type bool

bool — это множество логических значений true и false.

type bool bool

type byte

byte — это псевдоним uint8 и во всех отношениях эквивалентен uint8. По соглашению он используется, чтобы отличать значения байтов от значений 8-битных беззнаковых целых чисел.

type byte = uint8

type comparable

comparable — это интерфейс, которому удовлетворяют все сравнимые типы (логические значения, числа, строки, указатели, каналы, массивы сравнимых типов и структуры, все поля которых имеют сравнимые типы). Интерфейс comparable можно использовать только как ограничение параметра типа, но не как тип переменной.

type comparable interface{ comparable }

type complex128

complex128 — это множество всех комплексных чисел с действительной и мнимой частями типа float64.

type complex128 complex128

type complex64

complex64 — это множество всех комплексных чисел с действительной и мнимой частями типа float32.

type complex64 complex64

type error

Встроенный интерфейсный тип error — это общепринятый интерфейс для представления ошибки; значение nil означает отсутствие ошибки.

type error interface {
    Error() string
}

type float32

float32 — это множество всех 32-битных чисел с плавающей точкой стандарта IEEE 754.

type float32 float32

type float64

float64 — это множество всех 64-битных чисел с плавающей точкой стандарта IEEE 754.

type float64 float64

type int

int — это знаковый целочисленный тип размером не менее 32 бит. Однако это отдельный тип, а не псевдоним, например, int32.

type int int

type int16

int16 — это множество всех 16-битных знаковых целых чисел. Диапазон: от -32768 до 32767.

type int16 int16

type int32

int32 — это множество всех 32-битных знаковых целых чисел. Диапазон: от -2147483648 до 2147483647.

type int32 int32

type int64

int64 — это множество всех 64-битных знаковых целых чисел. Диапазон: от -9223372036854775808 до 9223372036854775807.

type int64 int64

type int8

int8 — это множество всех 8-битных знаковых целых чисел. Диапазон: от -128 до 127.

type int8 int8

type rune

rune — это псевдоним int32 и во всех отношениях эквивалентен int32. По соглашению он используется, чтобы отличать значения символов от целочисленных значений.

type rune = int32

type string

string — это множество всех строк из 8-битных байтов, которые обычно, но не обязательно, представляют текст в кодировке UTF-8. Строка может быть пустой, но не может быть nil. Значения строкового типа неизменяемы.

type string string

type uint

uint — это беззнаковый целочисленный тип размером не менее 32 бит. Однако это отдельный тип, а не псевдоним, например, uint32.

type uint uint

type uint16

uint16 — это множество всех 16-битных беззнаковых целых чисел. Диапазон: от 0 до 65535.

type uint16 uint16

type uint32

uint32 — это множество всех 32-битных беззнаковых целых чисел. Диапазон: от 0 до 4294967295.

type uint32 uint32

type uint64

uint64 — это множество всех 64-битных беззнаковых целых чисел. Диапазон: от 0 до 18446744073709551615.

type uint64 uint64

type uint8

uint8 — это множество всех 8-битных беззнаковых целых чисел. Диапазон: от 0 до 255.

type uint8 uint8

type uintptr

uintptr — это целочисленный тип, достаточно большой, чтобы хранить битовый шаблон любого указателя.

type uintptr uintptr

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/builtin/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API