【Swift】enumerate를 사용할 때 값을 받는 방법

10414 단어 Swift2SwiftSwift3.0

소개



【Swift】인덱스 첨부로 map, reduce, filter를 사용해 본다
Swift 2.0에서 enumerate 사용법
의 기사를 올리는 중에서 깨달은 적이 있었으므로 이것도 기사로 하려고 생각했습니다.

Swift 2.0으로 작성했습니다.
Swift 3.0으로 작성했습니다. (2016/09/28)

할 일



map 함수로 인덱스(index)와 요소(element)의 쌍을 만든다.

[1, 2, 3, 4] -> ["0:1", "1:2", "2:3", "3:4"]

방법 목록



자세한 쓰기 방법부터 순서대로 소개합니다.

값을 받는 방법 1



enumerate한 결과, 인덱스와 요소의 튜플로 돌아옵니다.
튜플 내의 각각의 변수에, 형태 첨부로 이름을 붙이고, 반환값의 형태까지 기술했습니다.

let array = [1, 2, 3, 4]
let pairList = array.enumerated().map { (tuple: (i: Int, ele: Int)) -> String in
    return "\(tuple.i):\(tuple.ele)"
}

값을 받는 방법 2



받는 변수명만 기술.
형추론에 의해 (Int, Int) 형의 튜플이 됩니다.

let array = [1, 2, 3, 4]
let pairList = array.enumerated().map { tuple in
    return "\(tuple.0):\(tuple.1)"
}

자동으로 (index: Int, element: Int)의 명명된 튜플이 되었습니다.
Swift3에서는 자동으로 (offset: Int, element: Int)의 명명된 튜플이 되었습니다.

let array = [1, 2, 3, 4]
let pairList = array.enumerated().map { tuple in
    return "\(tuple.offset):\(tuple.element)"
}

값을 받는 방법 3



튜플 내의 각각의 요소를 형태 첨부로 직접 취득합니다.

let array = [1, 2, 3, 4]
let pairList = array.enumerated().map { (i: Int, ele: Int) in
    return "\(i):\(ele)"
}

값을 받는 방법 4



튜플의 각 요소를 그대로 가져옵니다.

let array = [1, 2, 3, 4]
let pairList = array.enumerated().map { (i, ele) in
    return "\(i):\(ele)"
}

값을 받는 방법 5



변수 설명 없음, return 없음.
이것도 제대로 움직입니다.

let array = [1, 2, 3, 4]
let pairList = array.enumerated().map { "\($0.0):\($0.1)" }



map에서 값을 받는 방법을 소개했지만 for 문에서도 발견이있었습니다.

for 문 1



for (i, ele) in [1, 2, 3, 4].enumerated() {
    print(i, ele)
}

보통

for 문 2



for tuple in [1, 2, 3, 4].enumerated() {
    print(tuple.offset, tuple.element)
}

이 방법이라면 자동으로 보완까지 해 주었습니다! !





좋은 웹페이지 즐겨찾기