본문 바로가기
🍎iOS프로그래밍/겨울방학 특강

Swift문법 - 배열 Array

by 둥둥동동# 2022. 1. 9.
728x90

 

순서

본문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

 

728x90

'🍎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

댓글