Language/Swift-Basic

Swift - 고차함수 sort, sorted

Jessi :D 2022. 3. 8. 06:41

변수선언

// 배열을 변수로 선언
var myArray = [1,2,3,4,5,6,7,8,9,10]

 

sorted()

sorted를 통해 오름차순으로 정렬된 새 콜렉션을 반환

var filteredArray = myArray.sorted()

myArray
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

filteredArray
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

콜렉션 내의 데이터들을 번갈아 가면서 돌아,

반환 값이 true가 나올 때 해당하는 값을 넣음.

그래서 내림차순으로 정렬이 됨

var descandingArray = myArray.sorted(by: { (someValue:Int, otherValue:Int) -> Bool in
	return someValue > otherValue // 45 times
})
// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

클로저 축약

var myDescandingArray = myArray.sorted(by: {
	return $0 > $1 // 45 times
})
// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

by: >

> 로 간편하게 정렬 가능

var shortenDescandingArray = myArray.sorted(by: >)
// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

sort()

sort() 메소드를 통해 해당 배열 자체를 정렬

myArray.sort()
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

myArray.sort(by: >)
// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

myArray.sort(by: {
	return $0 > $1 // 9 times
})
// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

myArray.sorted(by: { (someValue:Int, otherValue:Int) -> Bool in
	return someValue > otherValue // 9 times
})
// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

 

 

 

 

 

 

 

 

반응형