여러 Aray를 돌릴 때 유용한 것 같아요.

6053 단어 Swift
Aray 두 개를 돌려서 값을 뽑고 싶어요.
애플리케이션의 히스토리 관리는 struct로 정리되어 Aray가 고정되어 있음
예를 들어 파일 이름을 바꿀 때 struct를 일부러 만들고 싶지 않기 때문에 원조로 회전합니다
그냥 하면
let items = try! FileManager.default.contentsOfDirectory(atPath: path)
let renamedItems = items.map{$0.replace("aaa",with:"bbb")}
let tuples = [(String,String)]
for i in items.count-1 {
   tuples.append(items[i], renamedItems[i])
}
tuples.forEach{
   ...
}

조금 지루하고 가능하면 메소드 체인으로 순환하고 싶어요.

원조로 돌리다


extension을 사용하여 Arry 설치

extension Array{
    func tupled<T>(_ items:[T])->[(Element,T?)]{return self.enumerated().map{($1,items.index(at: $0))}}
    func index(at index:Int)->Element?{return index >= 0 && index < self.count ? self[index] : nil}
}


let items = try! FileManager.default.contentsOfDirectory(atPath: path)
let renamedItems = items.map{$0.replace("aaa",with:"bbb")}
items.tupled(renamedItems).forEach{atPath,toPath in
    guard let toPath = toPath else {return}
    try! FileManager.default.moveItem(atPath: atPath, toPath: toPath)
}

만족하다(수염고양이)

좋은 웹페이지 즐겨찾기