Swift 의 소 작업 (1) 의 배열 에 대한 작업: 세 개의 고급 함수 (map, filter, reduce)

2029 단어
배열 은 우리 가 프로 그래 밍 과정 에서 가장 자주 사용 하 는 데이터 구조 이다. swift 중의 Array 는 oc 중의 NSArray 에 비해 NSArray 는 대상 만 저장 할 수 있 고 Int 처럼 NSArray 에 직접 존재 할 수 없 으 며 Array 는 임 의 유형 을 저장 할 수 있다. 비록 지금까지 Array 가 제공 한 기능 은 NSArray 가 전면적으로 강하 지 는 않 았 지만 swift 의 강력 한 유형 추정 특성 은Array 배열 의 조작 에 큰 간소 화 를 가 져 왔 습 니 다. 오늘 swift 에서 Array 배열 작업 에 관 한 세 가지 고급 함수: map, filter, reduce 를 쓰 십시오.자신의 학습 노트 로 삼다.
배열 의 처리 에 있어 서 배열 의 모든 요 소 를 통일 적 으로 처리 하려 면 어떤 방법 을 생각 하 시 겠 습 니까? 배열 을 옮 겨 다 니 고 해당 하 는 조작 처 리 를 하 겠 습 니까? 그 전에 저도 이렇게 했 습 니 다. 그러나 swift 는 배열 작업 에 관 한 세 가지 고급 조작 을 제 공 했 습 니 다. 이 세 가지 함수 로 배열 을 처리 합 니 다.자신의 코드 를 높 게 만 들 고 간편 하 며 데이터 양 이 많은 상황 에서 도 실행 속 도 를 높 일 수 있 습 니 다.
(1) 지도
이것 은 배열 의 모든 요 소 를 통 일 된 형식 으로 변환 처리 하 는 데 사용 되 며, 새로운 배열 로 되 돌아 갑 니 다.
하나의 예 를 들 면 모두 가 그것 의 용법 을 직관 적 으로 이해 할 수 있다.
let numbers = [3, 1, 5, 6, 10, 9]

현재 하나의 배열 (int 저장) 의 모든 요 소 를 문자열 로 바 꾸 고 뒤에 '+' 번 호 를 연결 해 야 합 니 다. 그러면 우 리 는 map 로 처리 할 수 있 습 니 다.
 let newArr = numbers.map {"\($0)+"}


swift 에 서 는 패 킷 에 있 는 인 자 를 $0 으로 대체 할 수 있 습 니 다. 첫 번 째 인 자 는 $0 이 고 두 번 째 인 자 는 $2 입 니 다. 이런 식 으로 유추 할 수 있 기 때문에 이 안에 $0 은 numbers 의 모든 요소 값 으로 이해 할 수 있 습 니 다.
간단 한 코드 한 줄 로 수 요 를 완 성 했 습 니 다. 간단 합 니 다. 여러분 이 충전 처리 방법 이 있다 는 것 을 알 면 곧 능숙 하 게 운용 할 수 있 습 니 다.
(2) 필터
이것 은 배열 의 요 소 를 선별 하 는 데 사용 되 며, 되 돌아 오 는 것 도 새로운 배열 입 니 다.
같은 예 를 완성 합 니 다: 위의 numbers 배열 을 5 이상 의 수 를 선택 하 십시오.
 let newArr = numbers.filter {$0 > 5}


(3) 감소
reduce 는 배열 의 모든 요 소 를 하나의 요소 로 합성 하 는 처리 이 며, 반환 값 은 하나의 값 형식 입 니 다.
하나의 예 로 그의 용법 을 알 수 있다. numbers 배열 의 모든 요 소 를 계산 하 는 것 과
let number1 = numbers.reduce(0, {$0 + $1})

그 중 0 은 초기 값 이 고 $0 은 계산 결과 값 이 며 $1 은 배열 요소 값 입 니 다.
reduce 처리 배열 의 모든 요소 의 곱 하기 도 사용 할 수 있 습 니 다.
 let number2 = numbers.reduce(1, {$0 * $1})

계산 과 다른 것 은 이 안의 초기 값 이 1 이다.
이렇게 세 개의 Array 조작 에 관 한 함 수 를 소 개 했 습 니 다. 적당 한 장면 에서 이런 고급 처리 방법 을 활용 하면 좋 은 효과 가 있 을 것 입 니 다.

좋은 웹페이지 즐겨찾기