diff --git a/book/contents/basic/converse.md b/book/contents/basic/converse.md index e1905c75..0e7082af 100644 --- a/book/contents/basic/converse.md +++ b/book/contents/basic/converse.md @@ -189,7 +189,7 @@ fn do_stuff(value: &T) { let cloned = value.clone(); } ``` -上面例子中 `cloned` 的类型时什么?首先编译器检查能不能进行**值方法调用**, `value` 的类型是 `&T`,同时 `clone` 方法的签名也是 `&T` : `fn clone(&T) -> T`,因此可以进行值方法调用,再加上编译器知道了 `T` 实现了 `Clone`,因此 `cloned` 的类型是 `T`。 +上面例子中 `cloned` 的类型是什么?首先编译器检查能不能进行**值方法调用**, `value` 的类型是 `&T`,同时 `clone` 方法的签名也是 `&T` : `fn clone(&T) -> T`,因此可以进行值方法调用,再加上编译器知道了 `T` 实现了 `Clone`,因此 `cloned` 的类型是 `T`。 如果 `T: Clone` 的特征约束被移除呢? ```rust