有没有办法在生锈中创建伪默认函数参数?我想做像
这样的事情pub struct Circular<T> {
raw: Vec<T>,
current: u64
}
impl<T> Circular<T> {
pub fn new(t_raw: Vec<T>, t_current=0: u64) -> Circular<T> {
return Circular { raw: t_raw, current: t_current };
}
我希望可以选择设置current
变量,但不会总是需要设置它。这是Rust可能做的事情吗?
答案 0 :(得分:5)
不,Rust不支持默认函数参数。您必须定义不同的方法,或者在结构初始化(您的示例)的情况下,您可以使用结构更新语法,如下所示:
use std::default::Default;
#[derive(Debug)]
pub struct Sample {
a: u32,
b: u32,
c: u32,
}
impl Default for Sample {
fn default() -> Self {
Sample { a: 2, b: 4, c: 6}
}
}
fn main() {
let s = Sample { c: 23, .. Sample::default() };
println!("{:?}", s);
}