[iOS 2주차] 고급 데이터 타입

황석범·2024년 10월 30일
0

고급 데이터 타입

  • Array

// 배열에 값을 추가하기

var array = [10, 20, 30]
print(array)

// 배열 마지막에 가하기
// Array가 제공하는 append함수를 사용하면 뒤에 마지막에 값을 추가할 수 있습니다.
array.append(40) // array 변수에 마지막에 40을 추가해주세요 !
print(array) // 출력 값 : [10, 20, 30, 40, 41, 42, 43]

// Array 뒤에 array를 추가할 수 있어요.
array.append(contentsOf: [41, 42, 43])
print(array) // 출력 값 : [10, 20, 30, 40, 41, 42, 43]

// index를 사용하여 원하는 위치에 값 추가하기
// Array의 insert 함수를 사용하면 원하는 index에 값을 넣을 수 있습니다.
array.insert(0, at: 5) // array insert를 호출합니다. insert 함수는 0번째 인덱스에 5를 추가합니다.
print(array) // 출력 값 : [ 5, 10, 20, 30, 40, 41, 42, 43]

// 배열의 값 제거하기
var array = [10, 20, 30, 40, 50]

// Array에서 제공하는 removeLast함수를 사용하면 맨뒤의 값을 삭제할 수 있습니다.
array.removeLast() // array의 removeLast 함수를 호출합니다.
print(array).     // [10, 20, 30, 40]

// Array에서 제공하는 removeFist 함수를 사용하면 첫번째 값을 제거할 수 있어요.
array.removeFirst()
print(array) // [20, 30, 40]

// Array에서 제공하는 remove(at: Int) 함수를 사용하면 원하는 인덱스의 값을 제거할 수 있어요.
array.remove(at: 1) // array의 remove 함수를 호출합니다. remove 함수는 1번째 값을 삭제합니다.
print(array) // [20, 40]

// Array에서 제공하는 removeAll 함수를 사용하면 모든 값을 삭제할 수 있습니다.
array.removeAll() // array의 removeAll 함수를 호출합니다.
print(array) // [] 빈배열!

배열 값 추가하기에 append() 부터 나오길래 제거하기에도 pop() 부터 나오지 않을까 생각하였는데 pop() 을 다뤄주지 않길래 한 번 찾아보았다.

  • pop & drop
    • Swift 문자열 또는 배열은 popFist() , dropFisrt(_:) 메소드와 popLast() , dropLast(_:) 메소드를 제공합니다.
  • First와 Last는 각각 '앞에서부터' 또는 '뒤에서부터'라고 생각하면 된다.

POP

  • 원본 배열의 '앞에서부터' 또는 '뒤에서부터' 요소를 1개 삭제한 다음, 삭제한 요소를 옵셔널 형태로 리턴해줍니다.

var numbers = [1, 2, 3] // 원본이 바뀌기 때문에 var 키워드로 선언
numbers.popLast() // return: 3 '뒤에서부터' 요소를 1개 삭제, 삭제한 요소를 옵셔널 형태로 리턴
print(numbers) // [1, 2] // 원본 배열에 마지막 요소 삭제 

DROP

  • 원본배열엔 아무런 영향을 주지 못합니다.
  • 원본배열과 똑같은 값을 복사한 다음, '앞에서부터' 또는 '뒤에서부터' 전달한 파라미터의 갯수만큼 요소를 삭제해 주고 삭제한 요소를 제외한 새로운 배열 또는 문자열을 리턴해줍니다.
  • 리턴 타입은 subbsequence 입니다.

let numbers = [1, 2, 3] // 원본에 아무런 영향을 주지 않기 때문에 let 키워드로 선언해도 문제가 없음
numbers.dropLast(2) // return: [1] 뒤에서부터 2개를 지우고 새로운 subsequence 타입의 배열을 리턴
print(numbers) // 원본엔 아무런 영향을 주지 않음

Swift를 공부하면서 Swift라는 언어는 type에 관대하지 못한 부분이나 뭔가 기본적으로 헷갈리게 할 요소가 없게 느껴지는 부분이 있다. 그러면서도 간편하게도 할 수 있게끔 할 수 있게 해놓은 느낌인 것 같다... 배열에 대해 더 정리하고 싶었지만 일단 넘어가고 뒤에 강의의 자료구조 부분에서 다시 정리해 볼 예정이다.


  • Set
    • 순서가 없습니다.
    • 중복을 허용하지 않습니다.
      • 중복된 값을 입력하면 무시됩니다.
    • 저장할 타입을 명시해줘야합니다.

// 기본값이 없을 때 생성하는 방법
var emptySet: Set<String> = []
var emptySet2 = Set<String>()

// 기본값이 있을 때 생성하는 방법
var defaultSet: Set<String> = ["A", "B", "C"]

// 기본값이 있을 경우 타입 추론이 가능
var typeInferredSet: Set = ["A", "B", "C"]

// for in 반복문을 사용하여 현재 Set에 있는 값들을 출력할 수 있어요!

for value in typeInferredSet {
	print(value)
}

// 위의 for문의 결과는 "A", "B", "C" 순서를 보장하지 않아요!

// Set에서 사용되는 유용한 변수

var defaultSet: Set<String> = ["A", "B", "C"]

// Set에 몇개의 값이 있는지 확인하는 count 변수
defaultSet.count // 3 -> 현재 defaultSet에는 "A", "B", "C" 3개가 저장되어 있습니다.

// Set에 값이 있는지 확인하는 isEmpty 변수
defaultSet.isEmpty // false -> defaultSet은 비어있지 않아서 false가 출력

  • Dictionary
    • 순서와 상관없이 키(key)값(value)의 쌍으로 데이터를 저장하는 Collection Type입니다.
    • keyvaluse 가 쌍으로 저장됩니다.
    • 순서가 없습니다.
    • key 는 중복을 허용하지 않고 중복된 key 에 새로운 값을 할당하면 value 가 최신의 값으로 업데이트 됩니다.
    • [ ] 대괄호 안에 : 를 기준으로 key , value 를 나누어서 사용합니다.
    • key 값에 접근하면 [ ] 대괄호 안에 key 값을 넣으면 됩니다.
profile
iOS 공부중...

0개의 댓글

관련 채용 정보