티스토리 뷰
안녕하세요!
오늘은 Array(이하 배열)를 사용해봅시다.
ㅎㅎ배열은 유명한 언어(C, C++, Java등..)에는 다 있으니 너무너무 익숙하시겠지만,
새로운 언어를 배울 때는 위 언어들을 다 잊어주세요 :)
Swift에서의 배열. 어떤건지 알아봅시다.
Array(배열)
● 배열의 생성
생성하는 법을 알아야 배열을 응용하든 말든 하겠죠?
Swift에서는 여러가지방법으로 배열을 선언할 수 있답니다.
1. 비어있는 배열 만들기
var empty : [Int] = []
var empty2 = [Int]()
var empty3 : Array<Int> = []
위 세가지가 비어있는 Int형 배열을 만드는 방법이에요. 꼭 Int형이 아니더라도, 넣고싶은 자료형을 넣으면 된답니다.
var empty = []는 안됩니다. 타입을 반드시 명시해줘야해요!
2. 임의의 데이터가 들어가 있는 배열 만들기
var a : Array<Int> = [1,2,3,4]
var b : [Int] = [1,2,3,4]
var c = [1,2,3,4]//타입유추
var d = Array<Int>(1...4)//[1,2,3,4]
네 가지 방법으로 만들 수 있는데요, 모두 [1,2,3,4]를 리턴합니다.
굳이 자료형을 쓰지 않더라도, Xcode는 타입유추를 통해서 배열의 타입을 알아서 결정해줘요.
세번째방법은 타입을 적어주지 않아도 Xcode가 알아서 유추하는구나..!
하지만, 세번째 방법을 쓸 때 조심해야 할 점은,
한번 Xcode가 타입을 결정하면 다른타입을 넣으려고 할 때 오류가 납니다.
무슨소리인지 잘 모르시겠다구요?
var someInts = [1] //타입유추 -> Int형배열이구나
someInts = [] //someInts를 다시 빈배열로 초기화
someInts.append("1") //String타입을 배열에 넣으려고 함 -> error!
(append는 배열에 원소를 추가해주는 메소드입니다 :) 곧 배우실 거에요.)
아무튼! 이 점을 조심해야합니다.
var arr = [1,2,"3","4"] //error!
그렇다면 한 배열에 여러자료형을 넣는거는 못하느냐?
아닙니다.
Any를 사용하면, 여러가지 자료형을 한 배열로 묶을 수 있답니다.
2-1. 여러 자료형이 들어갈 수 있는 배열 만들기
var anyArr1 : [Any] = [1,2,"3","4"]
var anyArr : Array<Any> = [1,2,"3","4"]
이렇게하면, 두 방법 모두 [1,2,"3","4"]를 리턴합니다. Int형과 String이 같이 존재하는 배열이죠.
어때요ㅎㅎ신기하죠?
※ 이렇게 사용하고 싶으시다면, 반드시 [Any]라고 타입을 지정해줘야 한답니다.
3. 크기가 정해진 배열 만들기
위의 배열 선언방법들은 크기가 정해져있지 않죠? 그럼 어떤 정해진 크기의 배열을 만들고 싶은데..
크기가 있는 배열은 Swift에서 어떻게 만드느냐!!
var threeDoubles = [Int](repeating: 0, count: 3) //[0,0,0]
var threeDoubles2 = Array(repeating: 0, count: 3) //[0,0,0]
var threeDoubles4 = [String](repeating: "A", count: 3) //["A","A","A"]
이렇게! 만들어주면 된답니다. 블로그들 찾아보니까 (count:3, repeatedValue: 0) 이렇게 된 곳이 많더라구요... 바뀌었습니다! (repeating : , count : )에요XD
● 배열 수정
1. 배열에 값 추가
var a : Array<Int> = [1,2,3,4]//[1,2,3,4]
a.append(5)//[1,2,3,4,5]
a += [6,7,8]//[1,2,3,4,5,6,7,8]
지금은 Array<int>가지고 했지만, 저기 위의 배열 선언방법에 모두 적용할 수 있어요.
append는 원소 하나만을 추가할 수 있지만, +=연산자를 사용하면 원소 여러개를 추가할 수 있답니다.
(정확히는 append함수를 사용하고, 저렇게 원소 하나만 넣어줄려면 딱 하나만 넣어줄 수 있습니다. 하지만,
append(contentsOf : sequence)를 사용해주면 한번에 여러개를 추가할 수 있어요.)
var a : Array<Int> = [1,2,3,4]//[1,2,3,4]
a.append(5)//[1,2,3,4,5]
a.append(contentsOf: stride(from: 5, through: 10, by: 1))
//[1,2,3,4,5,6,7,8,9,10]
우리 stride배웠었죠? 이렇게 stride함수를 이용해서 여러개를 append시킬 수 있답니다 :)
2. 배열의 값 접근
a[1] //2
a[2] //3
a[5] = 7
print(a) //[1,2,3,4,5,7] 원래 [1,2,3,4,5,6]이었음.
익숙한 접근 방법이죠?
오늘은 간단하게 배열을 어떻게 생성하고, 접근하는지만 배웠어요 :)
다음시간엔 배열에 있는 메소드들을 더 배워보는 시간을 가질거에요 XD
'Swift' 카테고리의 다른 글
Swift3 ) How to convert string to an array in Swift ( 문자열을 배열로 바꾸는 방법) (2) | 2017.07.10 |
---|---|
Swift3 ) Array사용해보기 (2/2) (1) | 2017.07.02 |
Swift3 ) 1152 단어의 개수/ components와 split의 차이 (0) | 2017.06.21 |
Swift ) print시 newline으로 안하는 법. (separator, terminator) (0) | 2017.06.14 |
Swift3 ) 입력 받는 것과 동시에 Int로 변환하는법 (0) | 2017.05.29 |
- ios 13
- fastlane
- WidgetKit
- np-hard
- github
- swift3
- FLUTTER
- Git
- swift tutorial
- 피아노
- swift delegate
- 스위프트
- actor
- Xcode
- swift array
- WKWebView
- 회고
- swift 공부
- SwiftUI
- UIBezierPath
- 스위프트 문법
- Accessibility
- swift sort
- Swift
- WWDC
- 제이슨 파싱
- np-complete
- iOS delegate
- Combine
- IOS
- Total
- Today
- Yesterday