sort sorted 차이

기본적으로 sort는 오름차순로 정렬한다. 내림차순하고 싶으면 sort(by:)를 사용한다.
제자리에서 정렬하기 때문에 어떤 배열을 리턴하지 않는다.

var arr = [3, 35, 2, 32, 1]

arr.sort() // 1 2 3 32 35
arr.sort(by:>) // 35, 32, 3, 2, 1

sorted는 정렬된 요소를 반환한다.
각 element가 comparable 프로토콜을 따르면 정렬할 수 있다.

var arr = [3, 35, 2, 32, 1]

arr.sorted() // error 발생

let array = arr.sorted()
print(array)

-> sort는 호출된 배열을 변경하여 값을 정렬한다.

반면 sorted는 정렬된 값으로된 배열 사본을 리턴한다.

sort는 배열 순서를 변경시켜버리기 때문에 원래 순서가 중요한 경우 sort를 호출하면 심각한 문제가 발생할 수 있다. sorted는 각 값을 복제하고 메모리 사용량을 두배로 늘려준다. 그래서 사이즈가 큰 배열을 sorted하는 경우 메모리 사용량이 많아질 수 있어서 주의해야 한다.

좋은 웹페이지 즐겨찾기