创建默认函数参数

时间:2015-07-11 20:47:37

标签: rust

有没有办法在生锈中创建默认函数参数?我想做像

这样的事情
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可能做的事情吗?

1 个答案:

答案 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);
}