Пакет builtin
Обзор
Пакет builtin содержит документацию по предварительно объявленным идентификаторам Go. Описанные здесь элементы фактически не входят в пакет builtin, но их описание позволяет godoc отображать документацию по специальным идентификаторам языка.
Указатель
Файлы пакета
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/