如何定义通过引用接受参数的特征函数

有害的

我尝试各种方法解决此问题时遇到了这个问题

我正在尝试定义一个特征,该特征通过引用接受一个参数,然后返回Self,如下所示:

struct X {}

trait CopyFrom {
    fn copy_from(&x: X) -> Self;
}

我得到的错误是:

error[E0642]: patterns aren't allowed in functions without bodies
 --> src/main.rs:5:18
  |
5 |     fn copy_from(&x: X) -> Self;
  |                  ^^ pattern not allowed in function without body

如果我x按值计算的话,它可以很好地编译(但这会消耗我不想要的参数)。

Rust参考说明如下:

参数的模式类型限于以下之一:

  • 识别码
  • mut识别
  • _
  • 和标识符
  • &&标识符

从2018年版开始,函数或方法参数模式不再是可选的。另外,只要有身体,就允许所有不可辩驳的模式。没有主体,上面列出的限制仍然有效。

我无法找到其他任何可以解释为什么我无法定义通过引用接受参数的特征函数的原因。

如果

您在这里使用了错误的语法-&x: X是一个引用类型取消引用type参数的引用模式X换一种说法,

fn f(&x: X) {
    // ...
}

相当于

fn f(x: X) {
    let &x = x;
}

反过来,这意味着

fn f(x: X) {
    let x = *x;
}

相反,您想使参数本身成为引用:

fn f(x: &X) { // take argument by reference
    // ...
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何定义接受咖喱函数参数的函数?

来自分类Dev

如何定义接受咖喱函数参数的函数?

来自分类Dev

如何使特征接受参数包?

来自分类Dev

如何通过函数参数引用 jquery 对象?

来自分类Dev

firebug控制台中定义的函数如何接受默认参数?

来自分类Dev

存储在引用中接受参数的构造函数

来自分类Dev

C简介-如何在函数中通过引用传递参数?

来自分类Dev

如何通过特征委派具有非静态参数的异步函数?

来自分类Dev

就常量性和引用性而言,函数应如何接受* lambda *参数?

来自分类Dev

无法通过引用实现特征的类型来调用函数

来自分类Dev

类型不匹配,解决了通过引用接受参数的闭包

来自分类Dev

如何定义一个同时接受 Seq[T] 和 ParSeq[T] 作为参数的函数?

来自分类Dev

Django:当没有定义 __init__() 时,模型类如何接受构造函数参数?

来自分类Dev

如何通过在C#中通过引用从MQL4接受值并返回它来创建dll函数?

来自分类Dev

是否可以将* this作为接受引用(&)的函数的参数传递?

来自分类Dev

如何使函数接受动态参数?

来自分类Dev

如何接受异步函数作为参数?

来自分类Dev

如何编写接受单个参数的构造函数?

来自分类Dev

参数在函数中通过引用传递

来自分类Dev

C++:将引用作为参数传递,但该函数不接受引用作为参数

来自分类Dev

通过右值引用函数参数传递时如何从原始类型变量中复制

来自分类Dev

如何使用Activator.CreateInstance反映其构造函数参数仅通过引用不同的类型

来自分类Dev

异步函数的矢量,该函数接收通过引用传递的参数

来自分类Dev

异步函数的矢量,该函数接收通过引用传递的参数

来自分类Dev

如何为不自取的特征函数提供类型参数?

来自分类Dev

如何在以参数为特征的lambda函数中添加“ any”?

来自分类Dev

循环接受参数的函数

来自分类Dev

如何使用反射通过引用传递参数

来自分类Dev

如何通过引用传递IloNumArray作为参数

Related 相关文章

  1. 1

    如何定义接受咖喱函数参数的函数?

  2. 2

    如何定义接受咖喱函数参数的函数?

  3. 3

    如何使特征接受参数包?

  4. 4

    如何通过函数参数引用 jquery 对象?

  5. 5

    firebug控制台中定义的函数如何接受默认参数?

  6. 6

    存储在引用中接受参数的构造函数

  7. 7

    C简介-如何在函数中通过引用传递参数?

  8. 8

    如何通过特征委派具有非静态参数的异步函数?

  9. 9

    就常量性和引用性而言,函数应如何接受* lambda *参数?

  10. 10

    无法通过引用实现特征的类型来调用函数

  11. 11

    类型不匹配,解决了通过引用接受参数的闭包

  12. 12

    如何定义一个同时接受 Seq[T] 和 ParSeq[T] 作为参数的函数?

  13. 13

    Django:当没有定义 __init__() 时,模型类如何接受构造函数参数?

  14. 14

    如何通过在C#中通过引用从MQL4接受值并返回它来创建dll函数?

  15. 15

    是否可以将* this作为接受引用(&)的函数的参数传递?

  16. 16

    如何使函数接受动态参数?

  17. 17

    如何接受异步函数作为参数?

  18. 18

    如何编写接受单个参数的构造函数?

  19. 19

    参数在函数中通过引用传递

  20. 20

    C++:将引用作为参数传递,但该函数不接受引用作为参数

  21. 21

    通过右值引用函数参数传递时如何从原始类型变量中复制

  22. 22

    如何使用Activator.CreateInstance反映其构造函数参数仅通过引用不同的类型

  23. 23

    异步函数的矢量,该函数接收通过引用传递的参数

  24. 24

    异步函数的矢量,该函数接收通过引用传递的参数

  25. 25

    如何为不自取的特征函数提供类型参数?

  26. 26

    如何在以参数为特征的lambda函数中添加“ any”?

  27. 27

    循环接受参数的函数

  28. 28

    如何使用反射通过引用传递参数

  29. 29

    如何通过引用传递IloNumArray作为参数

热门标签

归档