야곰 스위프트 프로그래밍(2. 데이터 타입)

🌈 devleeky16498·2022년 5월 19일
0

print()와 dump()

  1. print() 함수는 디버깅 콘솔에 간략한 정보를 출력해준다.
  2. dump()는 보다 자세한 정보를 출력해준다. 이는 출력하려는 인스턴스의 자세한 내부 컨텐츠까지 출력해준다.

주석

  1. // : 더블 슬래시로 한 줄 주석 작성이 가능하다.
  2. /*(슬래시 + 별) ----- 사이에 글을 넣어서 장문의 주석 작성이 가능하다.

변수와 상수

  1. 변수는 생성 후 데이터 값 변경이 가능하다.
  2. 상수는 한번 값을 설정하면 다음에 변경이 안된다.
  3. 변수에서 데이터 타입 생략 하 선언이 가능하다.
  4. 스위프트의 타입 추론 덕에 컴파일에 오류가 생기지 않는다.
  5. 상수를 사용하는 이유는 가독성 때문이다. 변하지 않는 값이므로 고유한 특성이나 불변하는 값을 명시할 때 상수를 선언한다.

데이터 타입 기본

데이터 타입은 프로그램 내 다뤄지는 자료형을 말한다.
모두 첫글자가 대문자로 시작하는 대문자 카멜케이스를 채용한다.
데이터 타입에는
1. Int/UInt : 정수(양의 정수) 타입,
2. Bool : 참 거짓 타입,
3. Float, Double : 부동소수 타입,
4. Character: 문자 타입,
5. String : 문자열 타입,
6. Any/AnyObject : 모든 데이터 타입

[// 다음과 같이 총 6개의 타입으로 나뉜다.

데이터 타입 고급

  1. 타입 별칭 : typealias 를 사용해서 타입의 또다른 명칭을 지정해줄 수 있다.
  2. 튜플 : 튜플은 지정된 데이터 묶음이다. 이는 타입 이름이 따로 없으므로 타입의 나열만으로 타입 생성이 가능하며, 데이터 갯수는 자유롭다.
  3. 컬렉션형은 배열, 딕셔너리, 세트 등이 있다.

배열

  1. let으로 선언하면 변경 못하는 배열, var로 생성하면 변경이 가능하다.
  2. isEmpty 프로퍼티로 빈 배열 Bool 값 확인이 가능하다.
  3. count 프로퍼티로 배열의 요소 갯수 확인이 가능하다.
  4. fist, last 프로퍼티를 통해 첫 인덱스와 마지막 인덱스 값에 접근이 가능하다.
  5. firstIndex(of:)메서드를 사용해서 해당 요소의 인덱스를 확인 가능하다
  6. insert(_,at:) 메서드를 통해서 특정한 인덱스에 요소 추가가 가능하다.
  7. append(_:)를 통해서 맨 뒤에 요소 추가가 가능하다.
  8. remove(_:)를 통해서 해당 요소를 삭제한 후 반환을 받을 수 있다.

딕셔너리

  1. 순서없이 키와 값의 쌍으로 구성되는 컬렉션이다.
  2. 딕셔너리 안에는 키가 하나이거나 여러개일 수 있다.
  3. let, var를 통해서 변경 유무 지정이 가능하다.
  4. isEmpty를 통해서 비어있는 여부 확인이 가능하다.
  5. 딕셔너리에서 키는 유일해야 하되, 값은 유일하지 않다.
  6. 딕셔너리에서는 없는 키로 접근이 가능하다. 다만 nil을 반환받는다.
  7. 특정 키에 해당하는 값을 제거하려면 removeValue(forkey:)메서드를 사용한다. 키에 해당하는 값이 제거된 후 반환된다.
  8. 딕셔너리에서 삭제는 키의 값에 nil을 할당해주면 된다.

세트

  1. 같은 타입의 데이터들을 순서없이 하나의 묶음으로 저장한다.
  2. 순서가 중요하지 않거나 고유한 값이어야 하는 경우 사용한다.
  3. 해시 가능한 값이 들어와야 한다.
  4. 배열과 다르게 축약형이 없다.
  5. isEmpty를 통해서 비어있는 여부 확인이 가능하다.
  6. count 프로퍼티로 갯수 접근이 가능하다.
  7. insert(_:) 메서드를 통해서 요소 추가가 가능하다.
  8. remove(_:)를 통해서 요소를 삭제하고 반환 받을 수 있다.
  9. sorted()메서드를 통해서 정렬된 배열을 반환할 수 있다.

열거형

  1. 연관된 항목들을 묶어서 표현할 수 있는 타입이다.
  2. 딱 정해진 값들만 열거형에 속할 수 있다.
  3. 제한된 선택지를 주고 싶을 때, 정해진 값 외에 입력받기 싫을 때, 예상된 입력 값이 한정되어 있을 때 열거형을 사용한다.
  4. 각 항목에 원시값(rawValue) 형태로 실제 값을 가질 수 있다.
  5. 연관 값을 사용해서 새로운 기능을 발현할 수 있다.
  6. switch구문과 연계하여 기능을 나타낼 수 있다.
  7. CaseIterable 프로토콜을 준수하여 allCases 프로퍼티를 통해 모든 케이스 컬렉션 생성이 가능하다.(배열이다)
  8. Comparable 프로토콜을 준수하여 케이스 별 비교가 가능하다. 앞에 위치한 케이스가 더 작은 값이 된다. 연관값이 있는 경우 프로토콜 준수가 되지 않는다.
profile
Welcome to Growing iOS developer's Blog! Enjoy!🔥

0개의 댓글