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(Type) *Type
  • func panic(v any)
  • func print(args ...Type)
  • func println(args ...Type)
  • func real(c ComplexType) FloatType
  • func recover() any
  • тип ComplexType
  • тип FloatType
  • тип IntegerType
  • тип Type
  • тип Type1
  • тип any
  • тип bool
  • тип byte
  • тип comparable
  • тип complex128
  • тип complex64
  • тип error
  • тип float32
  • тип float64
  • тип int
  • тип int16
  • тип int32
  • тип int64
  • тип int8
  • тип rune
  • тип string
  • тип uint
  • тип uint16
  • тип uint32
  • тип uint64
  • тип uint8
  • тип 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 в соответствии с его типом:

Array: the number of elements in v (same as len(v)).
Pointer to array: the number of elements in *v (same as len(v)).
Slice: the maximum length the slice can reach when resliced;
if v is nil, cap(v) is zero.
Channel: the channel buffer capacity, in units of elements;
if v is nil, cap(v) is zero.

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

func clear

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

Встроенная функция clear очищает карты и срезы. Для карт clear удаляет все записи, что приводит к пустой карте. Для срезов clear устанавливает все элементы до длины среза в нулевое значение соответствующего типу элемента. Если тип аргумента является параметром типа, набор типа параметра должен содержать только типы карты или среза, и 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[ключ]) из карты. Если m равно nil или такого элемента нет, delete не выполняет никаких действий.

func imag

func imag(c ComplexType) FloatType

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

func len

func len(v Type) int

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

Array: the number of elements in v.
Pointer to array: the number of elements in *v (even if v is nil).
Slice, or map: the number of elements in v; if v is nil, len(v) is zero.
String: the number of bytes in v.
Channel: the number of elements queued (unread) in the channel buffer;
         if v is nil, len(v) is zero.

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

func make

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

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

Slice: The size specifies the length. The capacity of the slice is
equal to its length. A second integer argument may be provided to
specify a different capacity; it must be no smaller than the
length. For example, make([]int, 0, 10) allocates an underlying array
of size 10 and returns a slice of length 0 and capacity 10 that is
backed by this underlying array.
Map: An empty map is allocated with enough space to hold the
specified number of elements. The size may be omitted, in which case
a small starting size is allocated.
Channel: The channel's buffer is initialized with the specified
buffer capacity. If zero, or the size is omitted, the channel is
unbuffered.

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(Type) *Type

Встроенная функция new выделяет память. Первый аргумент — тип, а не значение, и возвращаемое значение — указатель на недавно выделенное нулевое значение этого типа.

func panic

func panic(v any)

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

Начиная с Go 1.21, вызов panic с nil значением интерфейса или untyped 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] для получения подробностей.

тип ComplexType

ComplexType предназначен только для целей документации. Это заглушка для любого типа комплексных чисел: complex64 или complex128.

type ComplexType complex64

тип FloatType

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

type FloatType float32

тип IntegerType

IntegerType предназначен только для целей документации. Это заглушка для любого целого типа: int, uint, int8 и т. д.

type IntegerType int

тип Type

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

type Type int

тип Type1

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

type Type1 int

тип any

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

type any = interface{}

тип bool

bool — это множество булевых значений, true и false.

type bool bool

тип byte

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

type byte = uint8

тип comparable

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

type comparable interface{ comparable }

тип complex128

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

type complex128 complex128

тип complex64

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

type complex64 complex64

тип error

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

type error interface {
    Error() string
}

тип float32

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

type float32 float32

тип float64

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

type float64 float64

тип int

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

type int int

тип int16

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

type int16 int16

тип int32

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

type int32 int32

тип int64

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

type int64 int64

тип int8

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

type int8 int8

тип rune

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

type rune = int32

тип string

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

type string string

тип uint

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

type uint uint

тип uint16

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

type uint16 uint16

тип uint32

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

type uint32 uint32

тип uint64

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

type uint64 uint64

тип uint8

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

type uint8 uint8

тип 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