我正在尝试创建一个函数,它将生成一个vec长度n,在一些边界之间具有随机x和y类型坐标.具有这种坐标的每个点必须彼此具有最小距离.我正在尝试使用该功能,但我被卡住了.我应该使用特定的发行版还是添加一些过滤器或条件来实现这一目标?f64(-b, b)dthread_rng()
extern crate rand; // 0.5.5
use rand::prelude::*;
use rand::distributions::Standard;
pub fn apply_random_pos(n: usize, min_distance: f64) -> Vec<(f64, f64)> {
let mut rng = thread_rng();
let mut x: f64;
let mut y: f64;
let mut positions: Vec<(f64, f64)> = Vec::with_capacity(n);
positions = thread_rng()
.sample_iter(&Standard)
.take(n)
.collect::<Vec<(f64, f64)>>();
positions
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含两个变体的枚举:
enum DatabaseType {
Memory,
RocksDB,
}
Run Code Online (Sandbox Code Playgroud)
如果在检查参数是否为DatabaseType::Memory或的函数内部进行条件化,我需要什么DatabaseType::RocksDB?
fn initialize(datastore: DatabaseType) -> Result<V, E> {
if /* Memory */ {
//..........
} else if /* RocksDB */ {
//..........
}
}
Run Code Online (Sandbox Code Playgroud)