Какие бывают типы в Go ?
Спросят с вероятностью 17%
В Go существует несколько основных типов, которые можно разделить на следующие категории: базовые типы, агрегированные типы, ссылочные типы и интерфейсы. Рассмотрим каждую категорию более подробно.
Базовые типы
1️⃣Числовые типы
✅Целые числа:
✅
✅Числа с плавающей запятой:
✅Комплексные числа:
2️⃣Булевый тип
✅
3️⃣Символьные типы
✅
✅
4️⃣Строки
✅
Агрегированные типы
1️⃣Массивы
✅Фиксированный размер:
2️⃣Срезы
✅Переменный размер:
3️⃣Структуры
✅Набор полей:
Ссылочные типы
1️⃣Указатели
✅Хранит адрес переменной:
2️⃣Карты (map)
✅Хранит пары ключ-значение:
3️⃣Функции
✅Определяет тип функции:
4️⃣Интерфейсы
✅Определяет методы, которые должны быть реализованы:
Рассмотрим небольшой пример, демонстрирующий использование различных типов:
В Go есть базовые типы (числа, строки, булевы значения), агрегированные типы (массивы, срезы, структуры), ссылочные типы (указатели, карты, функции) и интерфейсы. Эти типы помогают структурировать и управлять данными в программе.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Спросят с вероятностью 17%
В Go существует несколько основных типов, которые можно разделить на следующие категории: базовые типы, агрегированные типы, ссылочные типы и интерфейсы. Рассмотрим каждую категорию более подробно.
Базовые типы
1️⃣Числовые типы
✅Целые числа:
✅
int
(размер зависит от платформы):int8
, int16
, int32
, int64 ; uint
(беззнаковый, размер зависит от платформы) ; uint8
(также известен как byte
), uint16
, uint32
, uint64
✅Числа с плавающей запятой:
float32
, float64
✅Комплексные числа:
complex64
, complex128
2️⃣Булевый тип
✅
bool
(значения true
и false
)3️⃣Символьные типы
✅
byte
(аналог uint8
)✅
rune
(аналог int32
, используется для представления символов Unicode)4️⃣Строки
✅
string
(последовательность байт, используемая для хранения текста)Агрегированные типы
1️⃣Массивы
✅Фиксированный размер:
[n]T
(например, [5]int
для массива из пяти целых чисел)2️⃣Срезы
✅Переменный размер:
[]T
(например, []int
для среза целых чисел)3️⃣Структуры
✅Набор полей:
struct
(например, type Person struct { Name string; Age int }
)Ссылочные типы
1️⃣Указатели
✅Хранит адрес переменной:
*T
(например, *int
для указателя на целое число)2️⃣Карты (map)
✅Хранит пары ключ-значение:
map[K]V
(например, map[string]int
для карты, где ключи - строки, а значения - целые числа)3️⃣Функции
✅Определяет тип функции:
func(параметры) возвращаемые_типы
(например, func(int) int
для функции, принимающей целое число и возвращающей целое число)4️⃣Интерфейсы
✅Определяет методы, которые должны быть реализованы:
interface{}
(например, type Stringer interface { String() string }
)Рассмотрим небольшой пример, демонстрирующий использование различных типов:
package main
import "fmt"
// Определение структуры
type Person struct {
Name string
Age int
}
// Функция, использующая интерфейс
func (p Person) String() string {
return fmt.Sprintf("%s (%d years old)", p.Name, p.Age)
}
func main() {
// Пример использования базовых типов
var age int = 30
var name string = "Alice"
var isStudent bool = false
// Пример использования агрегированных типов
var scores [3]int = [3]int{90, 85, 88}
var people []Person = []Person{
{Name: "Bob", Age: 25},
{Name: "Charlie", Age: 35},
}
// Пример использования ссылочных типов
var p *Person = &Person{Name: "Dave", Age: 40}
var ageMap map[string]int = map[string]int{"Alice": 30, "Bob": 25}
// Вывод данных
fmt.Println("Name:", name)
fmt.Println("Age:", age)
fmt.Println("Is student:", isStudent)
fmt.Println("Scores:", scores)
fmt.Println("People:", people)
fmt.Println("Pointer to Person:", p)
fmt.Println("Age map:", ageMap)
}
В Go есть базовые типы (числа, строки, булевы значения), агрегированные типы (массивы, срезы, структуры), ссылочные типы (указатели, карты, функции) и интерфейсы. Эти типы помогают структурировать и управлять данными в программе.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых