请用go写一段程序,这段程序需要定时遍历所有得学生信息,将学生成绩大于 60分 得学生信息放到一个新的单独集合,将小于60分得学生信息放到另一个单独集合,并分别打印出来,如何实现
时间: 2024-04-16 12:27:16 浏览: 14
以下是使用Go语言编写的程序示例,使用``和`ticker`包来实现定时任务,并遍历学生信息进行分类打印:
```go
package main
import (
"fmt"
"time"
)
type student struct {
name string
score int
}
func main() {
// 假设学生信息存储在一个学生切片中
studentInfo := []student{
{"Alice", 80},
{"Bob", 55},
{"Charlie", 70},
{"David", 65},
{"Eve", 45},
}
// 创建定时器,每隔一段时间执行任务
ticker := time.NewTicker(10 * time.Second)
for range ticker.C {
// 存储大于60分和小于60分的学生信息的切片
passingStudents := make([]student, 0)
failingStudents := make([]student, 0)
for _, s := range studentInfo {
if s.score >= 60 {
passingStudents = append(passingStudents, s)
} else {
failingStudents = append(failingStudents, s)
}
}
// 打印学生成绩
fmt.Println("大于60分的学生信息:")
for _, s := range passingStudents {
fmt.Println(s)
}
fmt.Println("小于60分的学生信息:")
for _, s := range failingStudents {
fmt.Println(s)
}
}
}
```
在这个示例程序中,我们使用`time`包中的`Ticker`来定时执行任务。程序会每隔10秒执行一次任务。在任务中,我们遍历学生信息并将学生成绩大于等于60分的学生放入`passingStudents`切片中,小于60分的学生放入`failingStudents`切片中,然后分别打印出来。
请注意,这只是一个示例程序,您可能需要根据实际需求进行适当的修改。