作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图编写一个将通用结构作为参数的函数:
struct S<T> {
v: T,
}
fn foo(a: &S) {
a.v
}
但是会发生错误:
error[E0107]: wrong number of type arguments: expected 1, found 0
--> src/main.rs:5:12
|
5 | fn foo(a: &S) {
| ^ expected 1 type argument
error: aborting due to previous error
struct S<T> {
v: T,
}
fn foo<T>(a: &S<T>) -> T {
a.v
}
发生另一个错误:
error[E0507]: cannot move out of `a.v` which is behind a shared reference
--> src/main.rs:6:5
|
6 | a.v
| ^^^ move occurs because `a.v` has type `T`, which does not implement the `Copy` trait
error: aborting due to previous error
struct S<T> {
v: T,
}
fn foo<T: Copy>(a: &S<T>) -> T {
a.v
}
最佳答案
您错过了通用参数
struct S<T> {
v: T,
}
fn foo<T>(a: S<T>) -> T {
a.v
}
Or use the Copy bound
fn foo<T: Copy>(a: &S<T>) -> T {
a.v
}
关于rust - 如何将通用结构作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64080840/
我是一名优秀的程序员,十分优秀!