일모도원(日暮途遠) 개발자
[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문법] let someValue: Int = {...}() 맨마지막에 있는 ()는 뭐지? (0) | 2023.09.24 |
---|---|
[스위프트] switch문에서 @unknown default (0) | 2022.09.13 |
[Swift] 문자열에 숫자가 있는거 정렬하기 (0) | 2022.09.03 |
[Swift] ~= 연산자 (0) | 2022.08.08 |
[Swift] @objc가 뭐지? (0) | 2022.07.23 |