GO语言工程实践课后作业:实现思路、代码以及路径记录| 青训营

111 阅读1分钟

一.实现思路

  1. 创建一个任务结构体,包含任务的名称和内容。
  2. 创建一个任务调度器,包含一个任务列表。
  3. 实现添加任务的方法,将任务添加到任务列表。
  4. 实现执行任务的方法,使用Go协程并发执行每个任务。
  5. 实现查看任务列表的方法。

二.代码

package main

import (
 "fmt"
 "sync"
)

// 任务结构
type Task struct {
 Name    string
 Content string
}

// 任务调度器结构体
type TaskScheduler struct {
 Tasks []*Task
}

// 添加任务
func (ts *TaskScheduler) AddTask(task *Task) {
 ts.Tasks = append(ts.Tasks, task)
}

// 执行任务
func (ts *TaskScheduler) ExecuteTasks() {
 var wg sync.WaitGroup

 for _, task := range ts.Tasks {
  wg.Add(1)
  go func(t *Task) {
   defer.Done()
   fmt.PrintfExecuting task: %s", t.Name)
   // 执行任务的逻辑
   fmt.Printf("Task content: %s\n", t.Content)
  }(task)
 }

 wg.Wait()
}

// 查看任务列表
func (ts *TaskScheduler) ViewTasks() {
 for task := range ts.Tasks {
  fmt.Printf("Task: %s\n", task.Name)
 }
}

func main() {
 task1 := &Task{Name: "Task 1", Content: "Do something"}
 task2 := &Task{Name: "Task 2", Content: "Do something else"}

 scheduler := &TaskScheduler{}
 scheduler.AddTask(task1 scheduler.AddTask(task2)

 scheduler.ExecuteTasks()

 fmt.Println("Task List:")
 scheduler.ViewTasks()
}

三.记录 保存一个名为 task_scheduler.go 的文件。然后执行以下命令来编译和运行代码:

go run task_scheduler.go

四.总结 今天赵征老师为我们初学者第一次讲解“项目实战”板块,其中包括通过项目需求,需求拆解,逻辑设计,代码实现等课题深入讲解。为后续课程奠基。