Skip to content

Commit 7c7a173

Browse files
committed
1
1 parent 946e9cb commit 7c7a173

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

docs/Rust.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,9 @@ fn main() {
568568
}
569569
```
570570

571-
关于《Rust圣经》中的一个例子[Example1](https://course.rs/advance/lifetime/static.html),文章说 `原因在于我们约束的是 T,但是使用的却是它的引用 &T,换而言之,我们根本没有直接使用 T,因此编译器就没有去检查 T 的生命周期约束!它只要确保 &T 的生命周期符合规则即可,在上面代码中,它自然是符合的。`是误解,实际上对函数传递`&i32`类型的参数,模式匹配会将`&i32`解构为`i32`,即`T`此时等于`i32`,这样 `T`就不是引用类型了。
571+
《Rust圣经》中的一个例子[Example1](https://course.rs/advance/lifetime/static.html),文章说 `原因在于我们约束的是 T,但是使用的却是它的引用 &T,换而言之,我们根本没有直接使用 T,因此编译器就没有去检查 T 的生命周期约束!它只要确保 &T 的生命周期符合规则即可,在上面代码中,它自然是符合的。`
572+
573+
这是一个误解,实际上对函数传递`&i32`类型的参数,模式匹配会将`&i32`解构为`i32`,即`T`此时等于`i32`,这样 `T`就不是引用类型了。因为在rust中,**函数传参也是一种模式匹配**
572574

573575
编译器针对类型 `T`检查发现输入的类型 `T`不是引用类型,而是一个自拥有的变量。
574576

0 commit comments

Comments
 (0)