在Rust中,是否可以将struct / type更改为“ Send”?

quux00

我已经尝试过几次尝试将东西传递给spawn函数(以创建新的线程/任务)并让编译器告诉我这个问题error: cannot capture variable of type "blah blah", which does not fulfill "Send", in a bounded closure

是否有一种方法可以转换类型以实现“发送”,还是基于某些规则而固定?

例如,我可以ToStr使用以下指令轻松实现特征:

#[deriving(ToStr, Rand)]
struct Point {
    x: int,
    y: int,
}

我可以为Send特质做一些类似的事情吗?还是“别样”的性格受到不同的对待?

这是此问题的具体示例-是否有解决方法?

fn create_process_options(cmdinfo: &CmdInfo) -> (ProcessOptions, Option<FileDesc>) {
// ... omitted
}

// "po" is of type std::run::ProcessOptions
let (po, filedesc_opt) = create_process_options(&cmdinfo);
spawn(proc() {
    let mut ps = Process::new(cmdinfo.program, cmdinfo.args, po).expect("darn");
    ps.finish();
});

编译器错误:

error: cannot capture variable of type `std::run::ProcessOptions<>`, which does not fulfill `Send`, in a bounded closure
let mut process = Process::new(cmdinfo.program, cmdinfo.args, po).expect("darn");
                                                              ^~
note: this closure's environment must satisfy `Send`
let mut process = Process::new(cmdinfo.program, cmdinfo.args, po).expect("darn");
em

发送是一种生锈的种类,您提到的其他内容是特征虽然两者都可以用来绑定泛型,但实际上它们是完全不同的。您必须选择加入特征,但是根据其内容推断出类型的种类-除了更改内容之外,您不能更改类型的种类。

对于大多数种类,规则是“如果X的所有成员均为种类Y,则类型X为种类Y”。

在这种情况下,由于要发送,则需要您满足'static,这意味着它们不包含任何非'static引用。由于ProcessOptions包含非静态生命周期Option<&'a Path>,例如克里斯·摩根在其评论中详细介绍的,因此ProcessOptions不符合发送条件。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Rust中,是否可以将struct / type更改为“ Send”?

来自分类Dev

是否可以将Type更改为给定类型?

来自分类Dev

JavaScript将输入type =“ text”更改为type =“ file”

来自分类Dev

无法使用send_data将文件编码更改为utf-8

来自分类Dev

是否可以将页面更改为分支?

来自分类Dev

将SQL列从Float更改为Decimal Type

来自分类Dev

如何将类<type>更改为Python类型<list>

来自分类Dev

将TYPE更改为ENGINE(不同的MySQL版本)

来自分类Dev

将文本区域中的“ +”更改为<input type ='checkbox'>

来自分类Dev

指定xsi:type是否允许将根元素的名称更改为任何值?

来自分类Dev

指定xsi:type是否允许将根元素的名称更改为任何值?

来自分类Dev

Excel:将“,”更改为“。”

来自分类Dev

将按钮更改为<a>

来自分类Dev

将 '\\A' 更改为 '\A'

来自分类Dev

是否可以将STMP端口从587更改为2525?

来自分类Dev

是否可以将行图的x比例更改为sqrt?

来自分类Dev

是否可以将domparser元素更改为字符串?

来自分类Dev

是否可以将字符串子集更改为数值?

来自分类Dev

是否可以将键值接口更改为元组

来自分类Dev

是否可以将目录权限更改为其以前的状态?

来自分类Dev

是否可以将显示更改为琥珀色单色?

来自分类Dev

是否可以将Rstudio中的颜色更改为默认选项以外的其他颜色?

来自分类Dev

是否可以将“自动搜索”字段从硬编码的“建议”更改为数据库中的数据?

来自分类Dev

在查询中,您是否可以根据返回值将结果更改为某些内容

来自分类Dev

是否可以在 bookdown 中更改为文档类“scrbook”?

来自分类Dev

在predict()函数之后,不通过type =“ response”将预测值更改为响应比例

来自分类Dev

将ImageView更改为黑白

来自分类Dev

将CSS更改为(索引)?

来自分类Dev

将数组更改为ArrayList

Related 相关文章

  1. 1

    在Rust中,是否可以将struct / type更改为“ Send”?

  2. 2

    是否可以将Type更改为给定类型?

  3. 3

    JavaScript将输入type =“ text”更改为type =“ file”

  4. 4

    无法使用send_data将文件编码更改为utf-8

  5. 5

    是否可以将页面更改为分支?

  6. 6

    将SQL列从Float更改为Decimal Type

  7. 7

    如何将类<type>更改为Python类型<list>

  8. 8

    将TYPE更改为ENGINE(不同的MySQL版本)

  9. 9

    将文本区域中的“ +”更改为<input type ='checkbox'>

  10. 10

    指定xsi:type是否允许将根元素的名称更改为任何值?

  11. 11

    指定xsi:type是否允许将根元素的名称更改为任何值?

  12. 12

    Excel:将“,”更改为“。”

  13. 13

    将按钮更改为<a>

  14. 14

    将 '\\A' 更改为 '\A'

  15. 15

    是否可以将STMP端口从587更改为2525?

  16. 16

    是否可以将行图的x比例更改为sqrt?

  17. 17

    是否可以将domparser元素更改为字符串?

  18. 18

    是否可以将字符串子集更改为数值?

  19. 19

    是否可以将键值接口更改为元组

  20. 20

    是否可以将目录权限更改为其以前的状态?

  21. 21

    是否可以将显示更改为琥珀色单色?

  22. 22

    是否可以将Rstudio中的颜色更改为默认选项以外的其他颜色?

  23. 23

    是否可以将“自动搜索”字段从硬编码的“建议”更改为数据库中的数据?

  24. 24

    在查询中,您是否可以根据返回值将结果更改为某些内容

  25. 25

    是否可以在 bookdown 中更改为文档类“scrbook”?

  26. 26

    在predict()函数之后,不通过type =“ response”将预测值更改为响应比例

  27. 27

    将ImageView更改为黑白

  28. 28

    将CSS更改为(索引)?

  29. 29

    将数组更改为ArrayList

热门标签

归档