Определение пользовательских типов
Часть раздела Основы путешествия по GO на Coddy — урок 94 из 109.
В Go вы можете создавать свои собственные пользовательские типы на основе существующих типов. Это придает вашему коду больше ясности и типобезопасности.
Определите пользовательский тип для температуры в градусах Цельсия:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}Результат показывает значение температуры:
Temperature: 25.5°CПользовательские типы ведут себя так же, как их базовые типы, но рассматриваются компилятором как отдельные типы, что улучшает читаемость кода и предотвращает логические ошибки.
Задание
НовичокВ этом испытании вы попрактикуетесь в определении пользовательского типа в Go. Пользовательские типы позволяют создавать собственные типы данных на основе существующих.
Ваша задача — определить пользовательский тип с именем Temperature на основе float64, а затем создать переменную этого типа.
После определения типа программа должна вывести значение и тип переменной температуры.
Шпаргалка
Создавайте пользовательские типы в Go, используя ключевое слово type:
type Celsius float64Пользовательские типы основаны на существующих типах, но рассматриваются компилятором как отдельные типы:
type Celsius float64
func main() {
var temperature Celsius = 25.5
fmt.Printf("Temperature: %.1f°C\n", temperature)
}Пользовательские типы улучшают читаемость кода и обеспечивают типобезопасность, ведя себя при этом как их базовые типы.
Попробуйте сами
package main
import "fmt"
// TODO: Определите пользовательский тип с именем 'Temperature' на основе float64
func main() {
// Создайте переменную типа Temperature со значением 23.5
var roomTemp Temperature = 23.5
// Выведите значение и тип roomTemp
fmt.Printf("Room temperature: %v\n", roomTemp)
fmt.Printf("Type of roomTemp: %T\n", roomTemp)
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий10Составные типы: Массивы
Введение в массивыОбъявление массивовИнициализация массивовДоступ к элементам массиваДлина массива с `len`Итерация по массивамМногомерные массивы13Составные типы: Структуры
Определение пользовательских типовСоздание экземпляров структурДоступ к полям структурУказатели на структурыИнициализация структурВложенные структурыАнонимные структурыИтоги: Пользовательские структуры данных2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений