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