[Rust] 범위 표현식(Range Expression)

러스트는 다른 모던 언어들과 마찬가지로 일련의 정수값을 표현하는 범위 표현이 존재한다.

끝을 포함하지 않는건 A..B로 쓰고, 끝을 포함하는건 A..=B로 쓴다. image

image 이건 끝인 5가 없고


image

image 이건 있다.

게다가 앞이나 뒤를 생략해서 표현하는것도 가능하다. 심지어 앞과 뒤를 다 생략할 수도 있다... image

image 뒤가 없는건 무한루프를 돈다.

앞을 생략한건 시작점이 없으니 for로 돌지 않는다..


그리고 범위표현식은 뭐 대단한놈이 아니라, 그냥 Range라는 타입의 값으로 치환되는거다.
아래와 같이 직접 생성할 수도 있다.
굳이 이럴 이유는 없다만... image

image

그리고 match 패턴매칭구문에서도 범위표현을 사용할수 있는데, 표현 구문이 좀 다르다.
기존 범위표현과는 점 2개가 아니라 3개를 써야한다...
범위값 Range값의 매칭과 단순 포함기능을 명확히 분리하기 위함인듯하다. image

image 이렇게


참조
https://doc.rust-lang.org/reference/expressions/range-expr.html
https://doc.rust-lang.org/std/ops/struct.Range.html