Инициализация структур
Часть раздела Основы путешествия по GO на Coddy — урок 98 из 109.
Существует несколько способов инициализации структур в Go. Давайте рассмотрим наиболее распространенные методы.
Создайте структуру с именами полей:
type Person struct {
name string
age int
}
func main() {
// Инициализация с именами полей
person1 := Person{name: "Alice", age: 30}
fmt.Println(person1)
}Вывод показывает нашу инициализированную структуру:
{Alice 30}Вы также можете инициализировать структуру без имен полей, но вы должны указывать значения по порядку:
person2 := Person{"Bob", 25}
fmt.Println(person2)Результат:
{Bob 25}Создайте пустую структуру с нулевыми значениями:
person3 := Person{}
fmt.Println(person3)Результат:
{ 0}Задание
НовичокВ этом испытании вы попрактикуетесь в инициализации структуры в Go. Мы определили структуру Person с полями для имени, возраста и информации о том, трудоустроен ли человек.
Ваша задача — инициализировать новый экземпляр структуры Person со следующей информацией:
- Name: "Alice"
- Age: 28
- IsEmployed: true
Затем мы выведем информацию об этом человеке.
Шпаргалка
Существует несколько способов инициализации структур в Go:
Инициализация с именами полей:
person1 := Person{name: "Alice", age: 30}Инициализация без имен полей (значения должны быть по порядку):
person2 := Person{"Bob", 25}Создание пустой структуры со значениями по умолчанию:
person3 := Person{}Попробуйте сами
package main
import "fmt"
// Определение структуры Person
type Person struct {
Name string
Age int
IsEmployed bool
}
func main() {
// TODO: Инициализируйте структуру Person с именем "Alice", возрастом 28 и isEmployed true
// Используйте либо имена полей, либо синтаксис литерала структуры
var alice Person
// Вывод информации о человеке
fmt.Printf("Name: %s\n", alice.Name)
fmt.Printf("Age: %d\n", alice.Age)
fmt.Printf("Employed: %t\n", alice.IsEmployed)
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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`Итоги — Принятие решений