У меня есть структура, в которую я бы хотел передать аргумент ..Default::default()
при первом запуске структуры. Однако мне бы хотелось, чтобы реализация по умолчанию могла принимать параметры, поэтому, когда я генерирую вектор, я могу использовать переопределенные значения по умолчанию для его генерации. Вот код:
struct RandVec {
vector: Vec<i64>,
vec_len: i64,
element_range: i64,
}
impl Default for RandVec {
fn default() -> RandVec {
RandVec {
vec_len: 10000,
element_range: 1000,
/* The get_rand_vec() function takes in vector length and element range,
I want to pass in vec_len and element_range so if I've declared them in
in main() it takes those over the default values here */
vector: get_rand_vec(/*vec_len*/, /*element range*/),
}
}
}
fn main() {
let mut random_vector = RandVec {
vec_len: 10,
..Default::default()
};
}
Rust Playground , здесь включена функция get_rand_vec()
.
Я просмотрел документацию и не сделал Я нашел способ сделать это, и я знаю, что default()
не принимает параметры, поэтому я даже не знаю, возможно ли это сделать с моим подходом. Если нет способа получить значения по умолчанию для динамического обновления, что было бы рекомендованным способом справиться с этим?