From 297cc2cce908cf9015553b04fc8ca05fb77f61bd Mon Sep 17 00:00:00 2001 From: gtofish <106068223+gtofish@users.noreply.github.com> Date: Thu, 5 Dec 2024 23:33:58 +0800 Subject: [PATCH 1/4] Update advance-trait.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加了为关联类型添加限制。看别人写的代码被绕晕了,还没绕出来 --- src/basic/trait/advance-trait.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/basic/trait/advance-trait.md b/src/basic/trait/advance-trait.md index 16a574ed..d6103853 100644 --- a/src/basic/trait/advance-trait.md +++ b/src/basic/trait/advance-trait.md @@ -81,6 +81,15 @@ trait Container{ fn difference(container: &C) {} ``` +**关联类型可以增加其他特征限制** +例如:限定类型必须实现了core::fmt::Display trait: +```rust +trait Container{ + type A:Display; + type B; + fn contains(&self, a: &Self::A, b: &Self::B) -> bool; +} +很多库里面都有这样的写法,大家别被绕晕 ## 默认泛型类型参数 From a92630d82e736f53e2632e92fdc3456b8fe89de9 Mon Sep 17 00:00:00 2001 From: Sunface Date: Thu, 9 Jan 2025 10:21:11 +0800 Subject: [PATCH 2/4] Update src/basic/trait/advance-trait.md --- src/basic/trait/advance-trait.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/basic/trait/advance-trait.md b/src/basic/trait/advance-trait.md index d6103853..d4ff17a2 100644 --- a/src/basic/trait/advance-trait.md +++ b/src/basic/trait/advance-trait.md @@ -89,7 +89,6 @@ trait Container{ type B; fn contains(&self, a: &Self::A, b: &Self::B) -> bool; } -很多库里面都有这样的写法,大家别被绕晕 ## 默认泛型类型参数 From 67a4cfea1f71df3c6b8a01436b433c0ab218d716 Mon Sep 17 00:00:00 2001 From: Sunface Date: Thu, 9 Jan 2025 10:21:34 +0800 Subject: [PATCH 3/4] Update src/basic/trait/advance-trait.md --- src/basic/trait/advance-trait.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/basic/trait/advance-trait.md b/src/basic/trait/advance-trait.md index d4ff17a2..64e85a99 100644 --- a/src/basic/trait/advance-trait.md +++ b/src/basic/trait/advance-trait.md @@ -82,7 +82,6 @@ trait Container{ fn difference(container: &C) {} ``` **关联类型可以增加其他特征限制** -例如:限定类型必须实现了core::fmt::Display trait: ```rust trait Container{ type A:Display; From a977fd70903519d7d24e807e104364b107f5ff47 Mon Sep 17 00:00:00 2001 From: Sunface Date: Thu, 9 Jan 2025 10:22:43 +0800 Subject: [PATCH 4/4] Update src/basic/trait/advance-trait.md --- src/basic/trait/advance-trait.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/basic/trait/advance-trait.md b/src/basic/trait/advance-trait.md index 64e85a99..b090fb1e 100644 --- a/src/basic/trait/advance-trait.md +++ b/src/basic/trait/advance-trait.md @@ -81,7 +81,7 @@ trait Container{ fn difference(container: &C) {} ``` -**关联类型可以增加其他特征限制** +关联类型还可以被其它特征进行约束,例如: ```rust trait Container{ type A:Display;