有没有办法在生锈中创建伪默认函数参数?我想做点什么
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 };
}
Run Code Online (Sandbox Code Playgroud)
我想选择设置current变量,但并不总是需要设置它.这是Rust可能做的事情吗?
不,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);
}
Run Code Online (Sandbox Code Playgroud)