是否可以将参数传递给Rust结构的默认值?

奥利

我有一个结构,希望..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()不接受参数,因此我什至不知道是否可以使用我的方法。如果没有办法获取默认值以动态更新,那么推荐的处理方式是什么?

麦卡顿

看起来您正在考虑制作常规new函数,而不是Default::default()在此处使用

Struct { ..Default::default() }是没有什么特别的防锈,语法实际上是Struct { ..any_expression }和表达式不能了解结构的其余部分,因此没有办法将参数传递到使用此语法默认值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以避免传递可选参数的默认值?

Python:将函数参数的默认值传递给* args或** kwargs

PHP变量范围:通过引用将默认值的参数传递给匿名函数?

将默认值传递给表值参数-SQL Server

如何在将哈希作为参数传递给 ruby 方法时设置默认值?

将null传递给默认值为null的可选参数

我可以将默认值传递给rails产生迁移吗?

在需要的值之前将默认值传递给函数

传递null时,是否可以在非可选参数上使用默认值?

在F#中,是否可以将对可变的默认值的引用作为参数传递?

是否可以将参数的默认值设置为函数的返回值?(TCL)

如何将默认值传递给Redux表单

如何将默认值传递给altair编码

将默认值列表传递给模板类

是否可以将参数传递给 PreferredSizeWidget?

是否可以将参数传递给MoveIteratorFactory

是否可以将实例变量作为方法关键字的默认值传递?

使用省略号将参数传递给函数,并为某些参数(如果不存在)设置默认值

如何使用非空默认值将空值传递给 SQL Server 存储过程参数

是否可以从派生类的默认构造函数将参数传递给基本构造函数?

如何将 VPC 的 ID 作为参数传递给 Cluster.template 以设置为默认值?

如何将参数的默认值从一个函数定义传递给更高的函数定义

C ++中发生意外的编译错误:将默认值传递给函数参数

检查用户是否将参数值赋予默认值

swagger对象是否可以在swagger-ui中具有默认值作为参数传递?

您可以将函数参数结构传递给函数吗?

是否可以将默认值设置为 Action DropDown?

是否可以将UserDefinedTableType列设置为默认值?

Pydantic:如果未传递任何值,如何将默认值传递给变量?