четверг, 23 мая 2019 г.

Спецификация Go: логические, числовые, строковые типы

Логический (boolean) тип

Логический (boolean) тип представляет собой набор логических (boolean) значений истинности, обозначаемых предварительно объявленными константами true и false. Предварительно объявленный логический тип - bool; это определенный тип.

Числовые (numeric) типы

Числовой тип представляет наборы целочисленных значений или значений с плавающей точкой (floating-point). Предварительно объявленные независимые от архитектуры числовые типы:

uint8       набор всех беззнаковых (unsigned)  8-битных целых чисел (integers) (от 0 до 255)
uint16      набор всех беззнаковых (unsigned) 16-битных целых чисел (integers) (от 0 до 65535)
uint32      набор всех беззнаковых (unsigned) 32-битных целых чисел (integers) (от 0 до 4294967295)
uint64      набор всех беззнаковых (unsigned) 64-битных целых чисел (integers) (от 0 до 18446744073709551615)

int8        набор всех 8-битных целых чисел (integers) со знаком (signed) (от -128 до 127)
int16       набор всех 16-битных целых чисел (integers) со знаком (signed) (от -32768 до 32767)
int32       набор всех 32-битных целых чисел (integers) со знаком (signed) (от -2147483648 до 2147483647)
int64       набор всех 64-битных целых чисел (integers) со знаком (signed) (от -9223372036854775808 до 9223372036854775807)

float32     набор всех IEEE-754 32-битных цисел с плавающей точкой (floating-point)
float64     набор всех IEEE-754 64-битных цисел с плавающей точкой (floating-point)

complex64   набор всех комплексных чисел с float32 реальной (real) и воображаемой (imaginary) частями
complex128  набор всех комплексных чисел с float64 реальной (real) и воображаемой (imaginary) частями

byte        псевдоним (alias) для uint8
rune        псевдоним (alias) для int32

Значение n-битного целого числа имеет ширину n бит и представлено с использованием арифметики с двумя дополнительными значениями.

Существует также набор предварительно объявленных числовых типов с размерами, зависящими от реализации:

uint     либо 32 либо 64 бита
int      тот же размер что и у uint
uintptr  беззнаковое целое число достаточно большое для хранения неинтерпретируемых битов значения указателя (pointer)

Во избежание проблем с переносимостью все числовые типы являются определенными типами и, следовательно, различаются, за исключением byte, который является псевдонимом для uint8, и rune, который является псевдонимом для int32. Явные преобразования необходимы, когда разные числовые типы смешаны в выражении или присваивании. Например, int32 и int не относятся к одному и тому же типу, даже если они имеют одинаковый размер в конкретной архитектуре.

Строковые типы (string types)

Строковый тип представляет собой набор строковых значений. Строковое значение - это (возможно, пустая) последовательность байтов. Количество байтов называется длиной строки и никогда не бывает отрицательным. Строки являются неизменяемыми: после создания невозможно изменить содержимое строки. Предварительно объявленный тип строки - строка (string); это определенный тип (defined type).

Длину строки s можно узнать с помощью встроенной функции len. Длина является константой времени компиляции (compile-time constant), если строка является константой. Байты строки могут быть доступны с помощью целочисленных индексов от 0 до len(s)-1. Недопустимо брать адрес такого элемента; если s[i] - это i-й байт строки, &s[i] недопустим.


Читайте также:


Комментариев нет:

Отправить комментарий