course_2/README.md
2025-11-20 16:09:13 +08:00

14 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第二次 rust 语言作业
1. 定义一个 enum 为性别male 和 female ,并且每个类别都包含年龄。
2. 构建一个叫学生的 student 结构体。里面含有姓名,性别,年级,和 email其中性别使用上面定义的 enum。
3. 在 get_student 函数中实现提示输入任意个学生的信息,按照一行一行的提示来输入,输入完一个学生之后问是否要要继续输入,检测到输入 quit 则退出,否则继续。对于任意错误的输入要求重新输入,最后返回构建好的数组。
4. 使用模式匹配在这些学生中 match 性别类型来分配到各个岗位。对于大于 16 岁的男生打印姓名和去扫地,对于大于 16 岁的女生打印姓名和去擦黑板,对于小于等于 16 岁的男生去扔垃圾,小于等于 16 岁的女生去擦桌椅。
下面是一些可以做得更好的点。
- 第一,对于输入姓名,年级等等,可以定义一个函数,使用泛型来复用多次逻辑;
- 第二,如何写的更加有函数式的风格?;
- 第三考虑类型驱动的安全。例如怎么确保email 格式?你可以实现一个 email 结构体,然后在 student 结构体中使用 email 结构体作为数据类型,这样在构建 student 的时候必须使用 email 的 from 方法来构建出 email保证格式的正确性。
- 第四,如果遇到了 warning 告诉你这个东西没用到,那么你可以用 #[allow(unused)] 放在上面来抑制编译器输出这条warning。对于这次的作业email 和 grade 确实没有用到。