일모도원(日暮途遠) 개발자

[Swift] Range를 이용한 Array생성 본문

프로그래밍 언어/스위프트

[Swift] Range를 이용한 Array생성

달님개발자 2022. 12. 7. 21:18

빈배열을 만들때는 아래처럼 만든다.

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