English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Тип данных определяет эффективныйПеременные GoТипы данных, которые можно сохранять. В языке Go типы данных делятся на следующие четыре категории:
Основные типы:Числа, строки и логические значения относятся к этой категории.
Типы агрегации:Массивы и структуры относятся к этой категории.
Тип данных:指针,切片,map集合,函数和Channel属于此类别。
Интерфейсы, массивы, карты, функции и каналы относятся к этой категории.
Здесь мы будем обсуждать типы интерфейсов в языках программирования GoОсновные типы данных. ВОсновные типы данныхБолее того, они делятся на три подкатегории,分别是:
Числа
Булевы значения
Строки
В языках программирования Go числа делятся натриПодкатегории:
Целые числа:В языках программирования Go целые числа с знаками и без знаков могут использоваться в четырех различных размерах, как показано в таблице ниже. С знаками int представляется как int, а без знаков - как uint.
Тип данных | Описание |
---|---|
int8 | 8-битное целое число с знаками |
int16 | 16-битное целое число с знаками |
int32 | 32-битное целое число с знаками |
int64 | 64-битное целое число с знаками |
uint8 | 8-битное беззнаковое целое число |
uint16 | 16-битное беззнаковое целое число |
uint32 | 32-битное беззнаковое целое число |
uint64 | 64-битное беззнаковое целое число |
int | in и uint имеют одинаковую ширину, как 32, так и 64 бита. |
uint | in и uint имеют одинаковую ширину, как 32, так и 64 бита. |
rune | Это синоним int32 и также обозначает Unicode кодовую точку. |
byte | Это синоним int8. |
uintptr | Это тип беззнакового целого числа. Его ширина не определена, но он может容纳 все биты значения指针. |
//Использование целых чисел package main import "fmt" func main() { //Использование 8-битного целого числа без знака var X uint8 = 225 fmt.Println(X + 1, X) //Использование 16-битного целого числа с знаками var Y int16 = 32767 fmt.Println(Y + 2, Y - 2) }
Вывод:
226 225 -32767 32765
Числа с плавающей запятой:В языках программирования Go числа с плавающей запятой делятся на2Как показано в таблице ниже:
Тип данных | Описание |
---|---|
float32 | 32-битное浮точное число по стандарту IEEE 754 |
float64 | 64-битное浮точное число по стандарту IEEE 754 |
//Использование чисел с плавающей запятой package main import "fmt" func main() { a := 20.45 b := 34.89 //Сброс двух чисел с плавающей запятой c := b - a //Отображение результата fmt.Printf("Результат: %f", c) //Отображение типа переменной c fmt.Printf("\nc типа: %T", c) }
Вывод:
Результат: 14.440000 Тип c: float64
Комплексные числа:Комплексные числа делятся на две части, как показано в таблице ниже. float32 и float64 также являются частью этих комплексных чисел. Внутренние функции создают комплексное число из его мнимой и действительной частей, а функции мнимой и действительной части извлекают эти части.
Тип данных | Описание |
---|---|
complex64 | Включает в себя комплексное число с действительным и мнимым компонентами float32. |
complex128 | Комплексные числа, содержащие float64 в качестве действительной и мнимой частей. |
// Использование комплексных чисел package main import "fmt" func main() { var a complex128 = complex(6, 2) var b complex64 = complex(9, 2) fmt.Println(a) fmt.Println(b) // Показать типы fmt.Printf("Тип a: %T, тип b: %T", a, b) }
Вывод:
(6+2i) (9+2i) Тип a: complex128, тип b: complex64
Тип данных булева представляет собой true или false. Значения типа булева не преобразуются в другие типы данных ни явно, ни неявно.
// Использование булевых значений package main import "fmt" func main() { // Переменные str1 := "w3codebox" str2 := "w3codebox" str3 := "w3codebox" result1 := str1 == str2 result2 := str1 == str3 // Вывести результат fmt.Println(result1) fmt.Println(result2) // Показать типы result1 и result2 fmt.Printf("Тип result1: %T, тип result2: %T", result1, result2) }
Вывод:
true true Тип result1: bool, тип result2: bool
Тип данных строки представляет собой последовательность кодовых точек Unicode. Иначе говоря, можно сказать, что строка является неизменяемой последовательностью байтов, что означает, что после создания строки вы не можете изменить её. Строка может содержать любые данные, включая нулевые байты, представленные в читаемом людьми формате.
// Использование строки package main import "fmt" func main() { // Переменная для хранения строки str str := "w3codebox" // Показать длину строки fmt.Printf("Длина строки: %d", len(str)) // Показать строку fmt.Printf("\nСтрока: %s", str) // Показать тип переменной str fmt.Printf("\nТип строки str: %T", str) }
Вывод:
Длина строки: 5 Строка: w3codebox Тип str: string