목차
두 개의 값을 비교하기.
두 개의 값을 비교하는 방법으로는 두 가지 방법이 있는데요.
첫 번째로 cmp crates의 min, max 함수를 이용하는 방법입니다.
두 수를 비교해서, 큰 값, 작은 값을 반환해 줍니다.
Tuple과 Array도 비교 가능하지만, 아쉽게도 Floating point Type은 지원하지 않습니다.
두 번째로, 객체 내장 함수를 통해 비교하는 방식입니다.
객체 값 a와 입력값 b를 비교해 큰 값, 작은 값을 반환해 줍니다.
이 방법 역시 Tuple과 Array도 비교 가능합니다.
여러 개의 값들 중 최대 최소 구하기.
여러 개의 값들 중 최대 최소를 구하는 방법으로는 세 가지가 있습니다.
최대값을 구하려면, min 대신 max를 사용하시면 됩니다.
iter().min()
가장 기본적인 방법으로는 iter().min() 함수를 이용하는 것입니다.
iter.min_by()
Floating point Type 은 다른 방식을 사용해 주어야 합니다.
iter.min_by_key()
프로그래머가 직접 기준을 정하여 최소값을 구하는 방법입니다.
min_by_key() 함수 역시 Floating point Type 을 지원하지 않아 다른 방식을 사용해 주어야 합니다.
iter().fold()는 다른 글에서 좀 더 깊게 다뤄보겠습니다.
이 코드에서의 iter().fold()에 대해 간단히 설명하자면,
x의 초기값으로 f64::INFINITY 를 설정하고, y의 값에 배열 a 원소 값을 각각 대입하며,
해당 함수를 실행하고 있습니다. 각각의 원소에 대한 함수 실행 결과값은 x에 저장되며 진행됩니다.
배열에 NaN이 포함되어 있는 경우
NaN을 무한대 값으로 가정하고 작성한 코드입니다.
※ x.partial_cmp(&y) -> Option<T> : None || Some(T)
※ Some(n) : n = Ordering::Greater || Ordering::Equal || Ordering::Less
참고 자료
https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.min
오늘은 Rust에서 min, max를 구하는 예제를 살펴보았습니다.
여러분께도 도움되었으면 좋겠습니다.
읽어주셔서 감사합니다.
'Rust' 카테고리의 다른 글
[example] Rust 표준입력, 한줄로 받은 입력 나누기 (1) | 2021.06.20 |
---|---|
Rust 메모리관리와 Ownership (0) | 2021.06.16 |
Rust 함수, 제어문 (0) | 2021.06.15 |
Rust 변수,상수, 데이터 타입 (1) | 2021.06.14 |
Rust 프로젝트, 컴파일, 빌드, 릴리즈 (0) | 2021.06.12 |