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

Программирование на Go. Структурирование кода программы. ООП

Арсений Скалкин Ученик (203), на голосовании 1 месяц назад
 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() {}
Почините ошибки при компиляции кода пожалуйста, и объясните их фикс):
# command-line-arguments [command-line-arguments.test]
./source_test.go:15:12: report.ID undefined (type Report has no field or method ID)
./source_test.go:16:102: report.ID undefined (type Report has no field or method ID)
./source_test.go:18:12: report.Name undefined (type Report has no field or method Name)
./source_test.go:19:108: report.Name undefined (type Report has no field or method Name)
./source_test.go:21:12: report.Email undefined (type Report has no field or method Email)
./source_test.go:22:108: report.Email undefined (type Report has no field or method Email)
./source_test.go:24:12: report.Age undefined (type Report has no field or method Age)
./source_test.go:25:115: report.Age undefined (type Report has no field or method Age)
make: *** [Makefile:5: run] Error 1
Дополнен 2 месяца назад
Код:
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() {}
Голосование за лучший ответ
Богдан Емельянов Мастер (1587) 2 месяца назад
Ошибки, которые вы видите, указывают на то, что структура Report, используемая в вашем коде, не имеет полей или методов с именами ID, Name, Email и Age. Чтобы исправить эти ошибки, вам нужно убедиться, что структура Report определена с необходимыми полями.
Похожие вопросы