투케이2K

73. (swift/xcode) [유틸 파일] subList 사용해 array list 가변 배열 데이터 부분 데이터 반환 실시 본문

Swift

73. (swift/xcode) [유틸 파일] subList 사용해 array list 가변 배열 데이터 부분 데이터 반환 실시

투케이2K 2022. 4. 7. 09:14

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [인풋으로 들어온 배열 데이터 중 부분 배열 데이터 반환 실시]
    func arraySubList(list: Array<Any>, startIdx: Int, endIdx: Int) -> Array<Any> {
        
        /*
        // -----------------------------------------
        [arraySubList 메소드 설명]
        // -----------------------------------------
        1. 인풋으로 들어온 배열 데이터 중 부분 배열 데이터 반환 실시
        // -----------------------------------------
        2. 호출 방법 :
         // [배열 선언]
         var anyArray : Array<Any> = []


         // [배열에 데이터 삽입 실시]
         anyArray.append("하나")
         anyArray.append("둘")
         anyArray.append("셋")
         anyArray.append("넷")
         anyArray.append("다섯")

         
         // [유틸 파일 호출]
         C_Util().arraySubList(list: anyArray, startIdx: 0, endIdx: anyArray.count-1) // [배열 전체 데이터]
         C_Util().arraySubList(list: anyArray, startIdx: 1, endIdx: 3) // [배열 부분 데이터 : 1, 2, 3 인덱스 데이터 출력]
        // -----------------------------------------
        3. 리턴 반환 : [하나, 둘, 셋, 넷, 다섯] / [둘, 셋, 넷]
        // -----------------------------------------
        */
        
        // [초기 리턴 데이터 변수 선언 실시]
        var returnData : Array<Any> = []
        
        
        // [인풋 데이터 널 체크 수행 실시]
        if list != nil && list.count>0 && list.isEmpty == false
            && startIdx >= 0 && startIdx <= endIdx
            && endIdx >= 0 && endIdx >= startIdx {
            
            // [부분 데이터 범위 지정]
            let subList = list[startIdx ..< (endIdx+1)]
            
            /*
            print("")
            print("====================================")
            print("[C_Util >> arraySubList() :: Array 부분 배열 데이터 반환 실시]")
            print("-------------------------------")
            print("input [list] :: \(list.description)")
            print("input [startIdx] :: \(startIdx)")
            print("input [endIdx] :: \(endIdx)")
            print("-------------------------------")
            print("subList [length] :: \(subList.count)")
            print("subList [list] :: \(subList)")
            print("====================================")
            print("")
            // */
            
            // [리턴 변수에 삽입]
            for i in stride(from: startIdx, through: endIdx, by: 1) {
                returnData.append(subList[i])
            }
        }
        
        
        // [로그 출력 실시]
        print("")
        print("====================================")
        print("[C_Util >> arraySubList() :: Array 부분 배열 데이터 반환 실시]")
        print("-------------------------------")
        print("input [list] :: \(list.description)")
        print("input [startIdx] :: \(startIdx)")
        print("input [endIdx] :: \(endIdx)")
        print("-------------------------------")
        print("return [length] :: \(returnData.count)")
        print("return [list] :: \(returnData)")
        print("====================================")
        print("")
        
        // [리턴 데이터 반환 실시]
        return returnData
    }
 

[결과 출력]


반응형
Comments