Код:
package main
import (
"fmt"
"time"
)
type User struct {
ID int
Name string
Email string
Age int
}
type Report struct {
User User
ReportID int
Date string
}
func generateReportID() int {
return int(
time.Now ().UnixNano())
}
func CreateReport(user User, reportDate string) Report {
reportID := generateReportID()
report := Report{
User: user,
ReportID: reportID,
Date: reportDate,
}
return report
}
func PrintReport(report Report) {
fmt.Printf("Отчет №%d\n", report.ReportID)
fmt.Printf("Дата: %s\n",
report.Date )
fmt.Printf("Пользователь:\n")
fmt.Printf("\tID: %d\n",
report.User.ID )
fmt.Printf("\tИмя: %s\n",
report.User.Name )
fmt.Printf("\tЭлектронная почта: %s\n",
report.User.Email )
fmt.Printf("\tВозраст: %d\n", report.User.Age)
}
func GenerateUserReports(users []User, reportDate string) []Report {
var reports []Report
for _, user := range users {
report := CreateReport(user, reportDate)
reports = append(reports, report)
}
return reports
}
func main() {}