私は、大学の部署の採用実践を見るためにいくつかのシミュレーションを書いています。だから私は私が含む部門の教授の異なるグループを持っているstruct.
部門には複数のグループがあります。したがって、各教授グループは、教授ランクの異なるメンバー、すなわち、フル、アソシエイト、またはアシスタントの教授で構成されています。他の構造体に埋め込まれた構造体の高次関数を使用している錆
すべての教授を同じランクにグループ化するには、構造体のベクトルへの参照を含むDepartmentLevels
という別のstruct
を作成しました。各ProfessorGroup
には、そのグループの教授数を示す属性current_number
があります。
私はDepartmentLevels
構造体のメソッドを記述しようとしています。この構造体は、ベクトル内の各グループの教授数を集計します。つまり、そのレベルの教授の総数です。ベクトルはイテレーターなので、高次関数を使うことができると思いました。問題は、上位の関数が適切に動作して入れ子になったstruct.
にアクセスしようとしていることです。私が誰かを指摘できると思っていたのです。
#[derive(Clone, Copy, Debug)]
pub struct ProfessorGroup<'a> {
name: &'a str,
gender: Gender,
level: ProfessorRank,
attrition_rate:f64,
promotion_rate:f64,
hiring_rate:f64,
current_number:i32,
}
#[derive(Clone, Copy, Debug)]
pub struct DepartmentLevels<'a> {
name: &'a str,
professors: &'a Vec<ProfessorGroup<'a>>,
number_of_vacancies: i32,
number_of_promotions: i32,
number_of_hires: i32,
impl<'a> DepartmentLevels<'a> {
pub fn get_professor_count(&mut self) -> i32 { //PROBLEM BELOW
let result = self.professors.iter().fold(0,|sum, self.professors.current_number| sum + self.professors.current_number);
result
}
}
私は取得していますエラーメッセージは次のとおりです。
error: expected one of `,`, `::`, or `:`, found `.`
--> src/DepartmentLevels/DepartmentLevels.rs:18:55
|
18 | let result = self.professors.iter().fold(0,|sum, self.professors.current_number| sum + self.professors.current_number);
| ^expected one of `,`, `::`, or `:` here
error[E0424]: expected unit struct/variant or constant, found closure capture `self`
大丈夫です。私はそのショットを与えるだろう。これの方向性をありがとう。 – krishnab