Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование на Go. Структуры и функции

Арсений Скалкин Ученик (203), на голосовании 1 месяц назад
Голосование за лучший ответ
alternativeGod Гуру (4312) 2 месяца назад
Вот пример реализации задачи на языке программирования Go:

package main

import (
"fmt"
"time"
)

// User структура для данных пользователя
type User struct {
ID int
Name string
Email string
Age int
}

// Report структура для отчёта
type Report struct {
User User
ReportID string
Date string
}

// Функция для создания отчёта на основе пользователя
func CreateReport(user User, reportDate string) Report {
// Генерация уникального ReportID
reportID := fmt.Sprintf("report-%d-%s", user.ID , time.Now ().Format("150405"))
return Report{
User: user,
ReportID: reportID,
Date: reportDate,
}
}

// Функция для вывода отчёта
func PrintReport(report Report) {
fmt.Printf("Report ID: %s\n", report.ReportID)
fmt.Printf("Date: %s\n", report.Date )
fmt.Printf("User ID: %d\n", report.User.ID )
fmt.Printf("Name: %s\n", report.User.Name )
fmt.Printf("Email: %s\n", report.User.Email )
fmt.Printf("Age: %d\n", report.User.Age)
fmt.Println("----------------------------")
}

// Функция для генерации отчётов для списка пользователей
func GenerateUsersReports(users []User, reportDate string) []Report {
var reports []Report
for _, user := range users {
report := CreateReport(user, reportDate)
reports = append(reports, report)
}
return reports
}

func main() {
// Пример списка пользователей
users := []User{
{ID: 1, Name: "Alice", Email: "alice @example.com", Age: 25},
{ID: 2, Name: "Bob", Email: "bob @example.com", Age: 30},
{ID: 3, Name: "Charlie", Email: "charlie @example.com", Age: 22},
}

// Генерация отчётов
reportDate := "2023-12-01"
reports := GenerateUsersReports(users, reportDate)

// Вывод отчётов
for _, report := range reports {
PrintReport(report)
}
}


Объяснение кода:

Структура User:

Содержит данные о пользователе: ID, Name, Email, Age.

Структура Report:

Включает в себя данные пользователя (User) и дополнительные поля ReportID и Date.

Функция CreateReport:

Создаёт отчёт для одного пользователя.
Генерирует уникальный ReportID на основе ID пользователя и текущего времени.

Функция PrintReport:

Выводит информацию из отчёта в читаемом формате.

Функция GenerateUsersReports:

Принимает список пользователей и дату отчёта.
Для каждого пользователя создаёт отчёт и добавляет его в список.

main():

Инициализирует список пользователей.
Генерирует отчёты и выводит их на экран.
Арсений СкалкинУченик (203) 2 месяца назад
а можно в формат. кода и желательно чтобы работало, а не 1-ый код от чатгпт?
Похожие вопросы