순서
본문1
Array
연결리스트 형태의 Generic 구조체
Swift Standard Library에 정의된 Array는 다음과 같습니다
@frozen struct Array<Element>
|
cs |
@frozen은 extension등으로 저장프로프티(stored properies)를 추가할 수 없음을 의미합니다
Generic이기 때문에 Array<Int> Array<String> 등 다양한 타입으로 선언할 수 있습니다
빈배열을 선언하는 다양한 방법
var myInt:Array<Int> = Array<Int>()
var myInt:Array<Int> = [Int]()
var myInt:[Int] = [Int]()
var myInt:[Int] = []
var myInt = [Int]()
|
cs |
Int타입 배열로 자료형을 지정하거나 생성자를 호출해 만들 수 있습니다
데이터추가를 전제로 빈배열을 선언하기 때문에 let으로 선언하지 않음
데이터를 추가할 땐 .append()메서드로 데이터가 들어갈 공간을 먼저 확보해야 합니다
var x : [Int] = []
x[0] = 1 //충돌
x.append(1)
x[0] = 1
print(x[0])
|
cs |
초기화 및 선언
let a = [1,2,3]
let b : [String] = ["2","2","2"]
let c : Array<Int> = [3,3,3]
print(type(of:a)) //Array<Int>
print(a)//[1,2,3]
print(type(of:b)) //Array<String>
print(b)//["2","2","2"]
print(type(of:c)) //Array<Int>
print(c)//[3,3,3]
|
cs |
다양한 접근 방법
for in
let a = [0,1,2,3]
for i in a {
print(i) // 0 1 2 3
}
|
cs |
첨자 활용
let a = [0,1,2,3]
for i in a[2...a.count-1] {
print(i) // 2 3
}
print(a[0...1]) //[0,1]
|
cs |
Array 메서드
Array(repeating:count:)
같은 값을 반복해 값을 넣을 수 있음
var a = [0,1,2,3,4]
print(a) //[0,1,2,3,4]
var b = Array(repeating: 7, count:3)
print(b) //[7,7,7]
var c = [String](repeating: "2", count:2)
print(c) //["2", "2"]
|
cs |
.count 배열항목의 개수
.isEmpty 비어 있는지
.append(contentsOf:) 배열의 마지막에 데이터 추가
.insert(_:at:) 지정한 인덱스에 값을 추가
.remove(at:) 지정한 인덱스 값 삭제
.removeLast() 배열의 마지막데이터 삭제
.firstIndex(of:) 찾고자 하는 값의 가장 낮은 인덱스 값을 출력 (해당 값이 없을 수 있으니 Optional 타입)
.contains() 해당배열에 값이 존재하는지
var a = [0,1,2,3]
a.append(contentsOf:[4,5])
print(a) // [0,1,2,3,4,5]
a.remove(at:3)
print(a)//[0,1,2,4,5]
a.insert(3,at:3)
print(a)// [0,1,2,3,4,5]
a.removeLast()
print(a)// [0,1,2,3,4]
print(a.firstIndex(of:2)) //Optional(2)
print(a.contains(3))//true |
cs |
.max() 최대값 출력 , 빈배열일 경우 nil반환
.min() 최소값 출력
var a = [0,1,2,3]
print(a.max()) //Optional(3)
print(a.min()) //Optional(0)
|
cs |
정렬
.srot() //오름차순
.sort(by:>) //내림차순. (<는 오름차순)
.revers() 반대로 정렬
.sorted 원본은 유지한 채 오름차순 결과 리턴
.sorted(by:>) 원본은 유지한 채 내림차순 결과 리턴
프로퍼티
first, last
let a = [0,1,2,3]
let b:[String] = []
print(a.first) //optional(0)
print(a.last) //optional(3)
print(b.first) //nil
|
cs |
배열이 비어있을 수 있으니 항상 옵셔널 타입을 반환합니다
count 배열항목의 개수
isEmpty 비어 있는지
let a = [0,1,2,3]
//a[0].isEmpty 잘못된 접근
print(a.isEmpty) //false
print(a.count) //4
|
cs |
소제목2
한성현 교수님의 유튜브 강의
https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA
'🍎iOS프로그래밍 > 겨울방학 특강' 카테고리의 다른 글
Swift-프로토콜과 델리게이트 (0) | 2022.01.14 |
---|---|
Swift문법 - 고차함수 (0) | 2022.01.13 |
Swift문법 - Generic (0) | 2022.01.08 |
Swift문법 - error handling (0) | 2022.01.08 |
Swift문법 - 옵셔널 체이닝 (0) | 2022.01.07 |
댓글