3.28(월)
제가 이해하고 공부 한대로 작성한 내용이다 보니 , 정확한 정보가 아닐수도 있습니다
고쳐야 할 부분이 있다면 , 편하게 애기 해주시면 감사 하겠습니다🙏🏻
스위프트는 튜플 외에도 많은 수의 데이터를 묶어서 저장하고 관리할 수 있는 컬렉션 타입을 제공합니다.
컬렉션 타입에는 '배열', '딕셔너리', '세트'가 있습니다.
Tip: 정식 문법보다는 단축 문법을 주로 사용합니다.
먼저 정식 문법의 모습과 어떻게 생성하는지를 봅시다.
// 생성 방법: (let 또는 var) 배열 이름: Array<배열의 타입>
let arr1: Array<Int> // 상수형 정수 배열
var arr2: Array<String> // 변수형 문자열 배열
실제로 코드를 짤 때는 정식 문법을 자주 쓰지 않습니다. (좀 귀찮거든요...)
Tip: 'Array<배열의 타입>'에서 '[배열의 타입]'으로 바뀐 거라고 생각하면 쉽습니다.
단축 문법은 정식 문법보다 훨씬 간단합니다.
// 생성 방법: (let 또는 var) 배열 이름: [배열의 타입]
let arr1: [Int] // 상수형 정수 배열
var arr2: [String] // 변수형 문자열 배열
대괄호 사이에 배열의 타입을 명시해주기만 하면 됩니다. (정식 문법에 비해 편합니다)
실제 코드를 짤때, 단축 문법을 주로 사용하여 배열을 생성합니다.
※ 배열의 타입을 명시하지 않아도 되지만, 빈 배열을 만들 경우에는 타입을 반드시 명시해야 합니다.
형식 추론은 타입을 명시하지 않아도 되기에 제일 편합니다.
iOS 앱 개발을 할 때 우리가 항상 실행시키는 Xcode의 컴파일러(Apple LLVM/Clang)가 배열에 들어가는 값이
무엇인지 형식 추론을 하여 알아서 결정해줍니다. (아주 편리하죠?)
// 생성 방법: (let 또는 var) 배열 이름 = [배열의 타입과 일치하는 값]
let arr1 = [1, 2, 3, 4, 5] // 상수형 정수형 배열
var arr2 = ["일", "이", "삼", "사", "오"] // 변수형 문자열 배열
하지만!
주의해야 할 점이 있습니다.
let emptyArr = [] // error!
let arr = [1, "이", 3, "사"] // error!
이런 식으로 대괄호 안에 여러 타입의 값을 같이 넣으면 에러가 발생하게 됩니다.
※ 반드시 배열의 타입을 명시해야 합니다.
빈 배열은 세 가지 형태로 만들 수 있습니다.
//let emptyArray = [] // error: 타입 명시가 돼 있지 않음. (형식 추론 X)
let emptyArray: [Int] = []
// 정식 문법 사용
let emptyArray2 = Array<Int>()
// 단축 문법 사용
let emptyArray3 = [Int]()
빈 배열을 만들 때는 반드시 배열의 타입을 명시해줘야 합니다.
그렇기에, 형식 추론을 사용하여 타입 명시를 생략할 수는 없습니다.
즉, 형식 추론이 아닌 단축 문법을 사용해야 한다는 것이죠!
● 임의의 값 넣기
※ 대입 연산자 '='의 뒤에는 대괄호 사이에 배열의 타입과 일치하는 값을 넣어줘야 합니다.
임의의 값을 넣는 데에도 여러 형태가 있습니다.
// 정식 문법
let strArray1: Array<String> = ["정식", "문법"]
// 단축 문법
let strArray2: [String] = ["단축", "문법"]
// 형식 추론
let strArray3 = ["형식", "추론"]
// 시퀀스
let nums = Array(1...3) // [1, 2, 3]
// 여러 자료형(타입)
let anyArr: [Any] = [1, 2, "three", "four"] // [1, 2, "three", "four"]
정식 문법과 단축 문법은 명시한 배열의 타입과 일치하는 값을 대괄호 사이에 넣어줍니다.
값을 구분할 때는 ' , '(콤마)를 사용하여 구분해 줍니다.