2017-10-16 90 views
1

我在學習Rust並學習了特質界的章節。在該章中,他們以+(加號)運算符爲例列舉了where子句中所有必需的特徵。Rust中where子句的特徵可能有哪些操作符?

什麼其他運營商被允許在Rust的特質?我搜索了,但我無法找到任何關於此的文檔。 Rust是否支持'或'符號,括號,否定?

回答

4

「或」符號

號這樣的事情沒有意義,我 - 會是什麼做的代碼,如果事情可能是AB

括號

不,除非你在Fn(...)和朋友,利用尖括號的泛型(Vec<T>)或切片用方括號([u8])括號,但這些都是部分類型。

同樣,這樣的請求對我來說沒有意義,爲什麼你需要任何類型的分組?

否定

號我認爲,這是由於在處理負邏輯使事情變得更復雜了。

其他運營商

There's the ? (question mark) bound。我寫過a parser of Rust code。雖然有可能我錯過了一些東西,但它解析了我拋出的所有〜37500 Rust文件,所以它非常適合。

+0

比你。我認爲,如果Rust支持可選特徵,則可以將'​​or'運算符創建爲?Trait1 +?Trait2。或不? –

+0

@GeorgeShuklin Rust不**支持可選特徵。 '?'(問號)只適用於特定特徵'Sized'。對於人體工程學,每個泛型類型都有一個隱式的'T:Sized'綁定*,除非*您使用'Sized'移除該缺省綁定。 – Shepmaster