[Swift] Range를 이용한 Array생성
빈배열을 만들때는 아래처럼 만든다.
var array0 = [Int]()
하지만 [Int]를 좌변에 이렇게 넣으면 에러난다.
var array00:[Int] = () // Cannot convert value of type '()' to specified type '[Int]'
배열을 만들때 값을 초기화 시켜줄려면 아래처럼 리터럴로 값을 주면 된다.
var array3 = [1, 2, 3]
var array31:[Int] = [1, 2, 3]
하지만 [Int]를 우변에 이렇게 넣으면 에러난다.
var array31 = [Int][1, 2, 3] // Instance member 'subscript' cannot be used on type '[Int]'
배열을 만들때 같은 값이 여러번 반복되게 할려면 아래처럼 하면 된다. 1, 1, 1의 값이 들어간다.
var array21 = Array(repeating: 1, count: 3)
같은 값이 아니고, 일련번호처럼 증가되는 값을가진 배열을 만들려면 무식하게 일일히 다 값을 적어도 된다. 1, 2, 3의 값이 들어간다.
var array3 = [1, 2, 3]
하지만 값이 많으면 Range를 써서 만들자. 아래는 전부 동일하다.
var array4 = 1...3
var array41 = (1...3)
var array42 = [Int](1...3)
var array5 = Array(1...3)
var array51:[Int] = Array(1...3)
var array6 = Array<Int>(1...3)
var array61:[Int] = Array<Int>(1...3)
하지만 아래처럼 좌변에 [Int]를 넣고 우변에는 Range만 넣으면 에러난다.
var array1: [Int] = 1...3
var array11: [Int] = (1...3)
var array12: [Int] = 1..<4
Int형으로 만든 배열을 String으로 변환할려면 아래처럼 하자. 전부 같다.
var array7 = array6.map { String($0)}
var array71:[String] = array6.map { String($0)}
var array8 = array6.map(String.init)
var array81:[String] = array6.map(String.init)
직접 Int형인 Range로부터 바로 String형 배열을 만들어도 된다.
var array9 = (1...3).map{ String($0) }
logFor.DLog(message: "array9 \(Mirror(reflecting:array9))")
https://soooprmx.com/swift-array-01-%ec%83%9d%ec%84%b1%ea%b3%bc-%ec%a1%b0%ec%9e%91/
Swift의 Array 완전 정복 - 01. 생성과 조작 · Wireframe
배열은 대부분의 프로그래밍 언어에서 가장 중요하게 다뤄지는 데이터 타입이며, 동시에 프로그래머들이 가장 많이 사용하게 되는 기본적인 자료 구조 중 하나이다. 이번 글에서는 Swift의 배열
soooprmx.com