작성
·
291
·
수정됨
0
강의중
rates 의 데이터를 가공하기위해 PickerViewController 에
var rates : [(String, Double)]? 로 선언하시고
URLSession 을 사용하여 Decoder 하는 과정에서 Json 데이터가 순서없이 들어오기 때문에 순서를 있게하려고 map 이나 sorted 형태를 사용한다 하셨는데,
위에 선언한 rates : [(String, Double)]?는 array 안에Tuple을 element로 사용해 변수를 선언하셨는데, 왜 element 를 Tuple로 선언하셨는자 궁금합니다.
찾아본 바로는 Dictionary 타입의 값을 비교하는 것은 불가능하다는데 그렇기때인가요??
var rates : [String, Double]? 딕셔너리 형태로 선언하는것보다 더 효율적인가요?
답변 1
1
안녕하세요
튜플을 사용하는이유
강의 24분쯤부터 보시면 딕셔너리를 sorted를 했을때 리턴타입이 튜플이라는걸 확인할 수 있습니다.
즉 제가 튜플을 사용하려고 만든게 아닌 sorted의 리턴타입이 튜플이어서 그 타입에 맞추기 위해 튜플을 사용하는 것입니다.
Dictionary로 사용하지 않은 이유
Dictionary를 Array로 감싸서 사용해도 됩니다.
단지 딕셔너리를 Array로 감싸고 그 다음에 sort하는 것 보다 바로 sort하면 한번에 Array로 감싸면서 sort가 가능하다는걸 보여드리기 위해 sorted를 사용한 것입니다.
만약 sort가 필요 없다면 바로 딕셔너리를 Array로 감싸서 사용해도 됩니다.
그 부분은 22분쯤에 map으로 설명한 부분입니다.
감사합니다.!