Go - Типы данных:Friendly Guide for Beginners

Привет, будущий программист! Готовы окунуться в чудесный мир программирования на языке Go? Сегодня мы рассмотрим один из основных концептов Go: типы данных. Не волнуйтесь, если вы еще ни разу не писали кода – я проведу вас через это шаг за шагом, как я делал это для countless студентов на протяжении многих лет моего преподавания. Поехали!

Go - Data Types

Что такое типы данных?

Прежде чем углубиться в детали, давайте поймем, что такое типы данных. Представьте, что вы организовываете كبير聚会 (весело, правда?). Вам нужно следить за разной информацией:

  • Количество гостей (целое число)
  • Стоимость еды на человека (число с десятичными знаками)
  • Будет ли это сюрприз-пати или нет (да или нет)
  • Имя почетного гостя (последовательность букв)

В программировании мы используем разные типы данных для представления этих разных видов информации. Go, будучи продуманным языком, предоставляет нам несколько типов данных для работы.

Целые типы

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

Основные целые типы

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

Тип Размер (биты) Диапазон
int8 8 -128 до 127
int16 16 -32,768 до 32,767
int32 32 -2,147,483,648 до 2,147,483,647
int64 64 -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807
uint8 8 0 до 255
uint16 16 0 до 65,535
uint32 32 0 до 4,294,967,295
uint64 64 0 до 18,446,744,073,709,551,615

Давайте посмотрим, как мы можем использовать их в коде:

package main

import "fmt"

func main() {
var partyGuests int = 50
var smallPartyGuests int8 = 10
var hugePartyGuests uint64 = 1000000

fmt.Println("Обычные гости на вечеринке:", partyGuests)
fmt.Println("Маленькая вечеринка гостей:", smallPartyGuests)
fmt.Println("Много гостей на вечеринке:", hugePartyGuests)
}

В этом примере мы объявляем переменные для хранения количества гостей на разных типах вечеринок. Тип int используется для обычной вечеринки, int8 для маленького собрания (поскольку мы знаем, что оно не превысит 127), и uint64 для огромного праздника (на случай, если мы планируем мероприятие для всего города!).

Типы 'int' и 'uint'

Go также предоставляет типы int и uint, которые имеют размер не менее 32 бит, но могут быть больше в зависимости от системы. Они часто являются наиболее удобным выбором, когда вам не нужно конкретное значение размера.

var flexibleNumber int = 42
var positiveFlexibleNumber uint = 42

Здесь flexibleNumber может быть положительным или отрицательным, в то время как positiveFlexibleNumber всегда положителен.

Плавающие типы

Теперь давайте поговорим о浮点ных числах. Они используются для чисел с десятичными знаками, таких как стоимость на человека для еды на нашей вечеринке.

Go предоставляет два浮点ных типа:

Тип Размер (биты) Точность
float32 32 Приблизительно 7 десятичных знаков
float64 64 Приблизительно 15 десятичных знаков

Давайте посмотрим, как их использовать:

package main

import "fmt"

func main() {
var costPerPerson float32 = 15.50
var totalBudget float64 = 1000.75

fmt.Printf("Стоимость на человека: $%.2f\n", costPerPerson)
fmt.Printf("Общий бюджет: $%.2f\n", totalBudget)
}

В этом примере мы используем float32 для стоимости на человека (поскольку нам не нужно极端ное точность) и float64 для общего бюджета (где мы можем хотеть больше десятичных знаков для точных расчетов).

Символ %.2f в функции Printf instructs Go отобразить浮点ное число с двумя десятичными знаками.

Другие числовые типы

Go предоставляет еще несколько числовых типов, которые полезны в конкретных ситуациях.

Комплексные числа

Да, Go может обрабатывать комплексные числа! Он предлагает два типа:

Тип Описание
complex64 Комплексные числа с float32 реальными и мнимыми частями
complex128 Комплексные числа с float64 реальными и мнимыми частями

Вот быстрый пример:

package main

import "fmt"

func main() {
var c64 complex64 = 1 + 2i
var c128 complex128 = 3 + 4i

fmt.Println("Complex64:", c64)
fmt.Println("Complex128:", c128)
}

Хотя вы, возможно, не часто используете комплексные числа, приятно знать, что Go всегда готов помочь, если вам это нужно!

Байт и Рун

Go также имеет два синонима для целых типов, которые используются в конкретных контекстах:

Тип Синоним для Обычное использование
byte uint8 Представляет байт данных
rune int32 Представляет Unicode кодовую точку

Вот как вы можете использовать их:

package main

import "fmt"

func main() {
var b byte = 65
var r rune = 'A'

fmt.Printf("Байт %d represents: %c\n", b, b)
fmt.Printf("Рун %d represents: %c\n", r, r)
}

В этом примере, и b, и r представляют букву 'A', но по-разному. Байт использует ASCII значение, а рун использует Unicode кодовую точку.

Заключение

Уф! Мы сегодня covered много ground. От целых чисел до浮点ных и даже_complexных чисел, Go предоставляет богатый набор типов данных для работы. Помните, что выбор правильного типа данных подобен выбору подходящего инструмента для работы – он может сделать ваш код более эффективным и предотвратить ошибки.

Пока вы продолжаете свое путешествие в Go, вы будете чувствовать себя более комфортно с этими типами и узнаете, когда использовать каждый из них. Не волнуйтесь, если это покажется вам подавляющим сначала – это совершенно нормально! Как и обучение езде на велосипеде, это требует практики, но через некоторое время вы будете легко передвигаться по коду на Go, как профессионал.

Продолжайте программировать, продолжайте учиться и, что самое главное, получайте удовольствие! В конце концов, программирование немного похоже на планирование идеальной вечеринки – все дело в том, чтобы правильно combining элементы, чтобы создать что-то потрясающее. Счастливого кодирования!

Credits: Image by storyset