Первоначально было опубликовано здесь!
Всего в Go или Golang существует 19
базовых типов. Они перечислены ниже:
bool
string
int
int8
int16
int32
int64
uint
uint8
uint16
uint32
uint64
uintptr
byte
rune
float32
float64
complex64
complex128
Тип bool
Тип bool
используется для хранения истинных/ложных значений, таких как true
или false
.
var isAdmin bool // isAdmin variable has a type of `bool`
isAdmin = true
Тип string
Тип string
используется для хранения последовательности символов. Символы заключаются в двойные кавычки (""
).
var name string // name variable has a type of `string`
name = "John Doe"
Тип int
, int8
, int16
, int32
и int64
Типы int
используются для хранения числовых значений, включая отрицательные и неотрицательные числа.
Цифры после слова int
означают размер. Например, тип int8
может хранить значения размером 8 бит
.
Каждый из типов int
может иметь отрицательные и неотрицательные числа до определенного диапазона. Они указаны ниже:
- Тип
int8
может иметь числа в диапазоне от-128
до127
. - Тип
int16
может иметь числа в диапазоне от-32768
до32767
. - Тип
int32
может иметь числа в диапазоне от-2147483648
до2147483647
. - Тип
int64
может иметь числа в диапазоне от-2^63
(-2 в степени 63) до2^63 - 1
(2 в степени 63 минус 1). - Тип
int
является платформозависимым типом, что означает, что на32
битной системе он будет таким же, как типint32
, а на64
битной системе — как типint64
.
var num int8 // num variable has a type of `int8`
num = -128
Тип uint
, uint8
, uint16
, uint32
и uint64
Типы uint
используются для хранения числовых значений неотрицательных чисел. Его также называют беззнаковым целочисленным типом.
Цифры после слова int
означают размер. Например, тип uint8
может хранить значения размером 8 бит
.
Каждый из типов uint
может иметь неотрицательные числа до определенного диапазона. Они указаны ниже:
- Тип
uint8
может иметь числа в диапазоне от0
до255
. - Тип
uint16
может содержать числа в диапазоне от0
до65535
. - Тип
uint32
может иметь числа в диапазоне от0
до4294967295
. - Тип
uint64
может иметь числа в диапазоне от0
до2^64 - 1
(2 в степени 64 минус 1). - Тип
uint
является платформозависимым типом, что означает, что на32
битной системе он будет таким же, как типuint32
, а на64
битной системе он будет таким же, как типuint64
.
var num uint8 // num variable has a type of `uint8`
num = 255
Тип uintptr
Возможно, вам никогда не придется использовать тип uintptr
, если только вы не разрабатываете код, связанный с библиотеками времени выполнения Go. Он используется для обхода системы типов Go и может быть использован в качестве ссылки на участки памяти C
или других кодов языков программирования системного уровня.
Тип byte
Тип byte
является псевдонимом для типа uint8
.
Тип rune
Тип rune
является псевдонимом для типа int32
.
Одна из особенностей типа rune
заключается в том, что если вы присвоите переменной символ Unicode, например 😃
(улыбающееся лицо с открытым ртом), то он будет автоматически преобразован в его шестнадцатеричную кодовую точку Unicode. Шестнадцатеричное число — это, по сути, целое число.
var favEmoji rune
favEmoji = '😃'
fmt.Println(favEmoji) // 128515
Тип float32
и float64
Тип float32
и float64
используется для хранения числовых значений, имеющих десятичную или дробную часть.
- Тип
float32
имеет размер32
бит и одинарную точность. - Тип
float64
имеет размер64
бит и двойную точность.
floatNum := 78.65 // floatNum variable has the type of float64
Тип complex64
и complex128
Go может легко работать с комплексными числами также с помощью типов complex64
и complex128
.
- Тип
complex64
имеет действительную часть, состоящую из типаfloat32
, и мнимую часть, состоящую из типаfloat32
. - Тип
complex128
имеет вещественную часть, состоящую из типаfloat64
, и мнимую часть, состоящую из типаfloat64
.
Это можно сделать следующим образом,
complexNum := 5 + 8i // complexNum variable type is complex128
Или вы можете использовать встроенную функцию complex()
для создания действительной и мнимой частей комплексного числа следующим образом,
complexNum := complex(5, 8) // complexNum variable type is complex128
fmt.println(complexNum) // 5 + 8i
Это доступные базовые типы в Golang.
Вот и все 😃!
Не стесняйтесь поделиться, если вы нашли это полезным 😃.