2017-10-16 30 views
1

나는 녹을 배우고 있으며 특성 경계에 관한 장을 읽었습니다. 이 장에서는 where 절에 필요한 모든 특성을 열거하기 위해 + (더하기) 연산자와 함께 예제를 제공합니다.녹 (Rust)의 where 절에있는 특성의 가능한 연산자는 무엇입니까?

녹의 특성에 대해 다른 연산자는 무엇이 허용됩니까? 검색했지만이 문서에 대한 문서를 찾을 수 없었습니다. 녹이 '또는'표기법, 대괄호, 부정을 지원합니까?

답변

4

'또는'그런 일이 나에게 이해가되지 않습니다 표기

번호 - 뭔가 A 또는 B 될 수 있다면 코드는 무엇을 할 것인가?

괄호

당신이 Fn(...)과 친구, 제네릭 ( Vec<T>) 또는 조각에 대괄호의 사용 ( [u8]) 등의 꺾쇠 괄호의 사용에 괄호를 계산하지만,하지 않는 한, 다음은 유형의 부분.

다시 한 번 그런 요청은 내게 어울리지 않습니다. 왜 어떤 종류의 그룹화가 필요합니까? 나는이 부 논리를 처리하는 것은 훨씬 더 복잡한 일을하게한다는 사실 때문이라고 생각

부정

번호.

다른 사업자

There's the ? (question mark) bound.


출처 : a parser of Rust code으로 작성했습니다. 내가 뭔가를 놓친 것이 가능할 때까지, 나는 그것에 던져 넣은 모든 ~ 37500 Rust 파일을 파싱하므로 꽤 잘 맞습니다.

+0

너보다. 내 생각에 Rust가 옵션 형질을 지원한다면 'Trait1 +? Trait2'로 'or'연산자를 생성 할 수 있습니다. 안 그래요? –

+0

@GeorgeShuklin Rust는 옵션 특성을 지원하지 않습니다 **. '?'(물음표)는 'Sized'특성에만 적용됩니다. 인체 공학의 경우, 모든 제네릭 타입은'? Sized'를 사용하여 그 기본 경계를 제거하지 않는 한 암시적인'T : Sized' bound *를가집니다. – Shepmaster