p.79 : Bool (불리언 타입)

booltest.toggle()를 통해 불리언 값을 뒤집을 수 있다.


 

p.81 : random(in: ) 메소드 - 임의의 수 만들기

 


 

p.82 : String

이니셜라이저 → 빈문자열 생성

var introduce : String = String()

append() 와 +연산자

.count를 통해 문자의 수 카운트.

.isEmpty 빈 문자열인지 확인.

 


 

p.87 : Any, AnyObject, nil

Any : 모든 데이터 타입 사용 가능.

AnyObject : 클래스의 인스턴스만 할당 가능. (Any보다는 한정된 의미)

nil : '없음'을 나타내는 스위프트 키워드.

 


 

p.90 : typealias (타입 별칭)

임의로 다른 이름(별칭)을 부여할 수 있음. | 기존의 데이터 타입의 이름프로그래머가 만들어준 이름 모두 사용할 수 있음.

 


 

p.91 : Tuple (튜플)

튜플은 '지정된 데이터의 묶음'임.

튜플 기본.

 

 

튜플의 각 요소를 이름 대신 숫자로 표현 → 각 요소가 어떤 의미가 있는지 유추하기 어려움. → 튜플의 요소마다 이름을 붙여주는 방식은,

튜플 요소 이름 지정.

 

→ 타입 별칭을 사용해 좀 더 깔끔하고 안전하게 작성 가능.

p.92 - 타입 별칭 사용.

 

 


p.93 - Array (배열)

스위프트의 Array는 필요에 따라 자동으로 버퍼의 크기를 조절해줌.

isEmpty : 비어있는 배열인지 확인

count : 배열의 요소 개수.

 

 

first & last - 맨 처음과 맨 마지막 요소를 가져올 때 쓰임.

firstIndex(of: ) & lastIndex(of: ) - 해당 요소의 인덱스를 알 수 있음. (중복 시, first는 제일 먼저 발견된 요소의 인덱스 | last는 제일 나중에 발견된 요소의 인덱스)

append( _ : ) - 맨 뒤에 요소 추가.

insert( _ : at : ) - 원하는 위치에 요소 추가.

remove( _ : ) - 원하는 요소 삭제. ( removeFirst() | removeLast() | remove( at : ) )

 


 

p.96 - Dictionary (딕셔너리)

요소들이 순서가 없음. → print시 뒤죽박죽 나옴.

다양한 선언 방법

var numberForName : Dictionary<String, Int> = Dictionary<String, Int>()

var numberForName : [String : Int] = [String : Int]()

var numberForName : [String : Int] = [:]

 


p.98 - Set (세트)

같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 컬렉션 타입.

Set는 요소들이 모두 유일함.(중복된 값 존재X) → 집합 관계를 표현하고자 할 때 유용함.

—> Set는 순서가 중요하지 않거나, 각 요소가 유일한 값이어야 하는 경우 사용함.

배열과 달리 축약형이 없다.(Array → [Int] 같은 축약형X)

 


 

p.102 - 컬렉션에서 임의의 요소 추출과 뒤섞기

randomElement()메소드 : 임의의 요소 추출

shuffle() 메소드 : (자신을) 실제로 섞음. (Dictionary, Set는 순서가 있기 때문에 shuffle() 사용X)

shuffled() 메소드 : 자신의 요소는 그대로 둔 채로, 섞어서 반환함.


 

p.104 - enum (기본 열거형)

열거형 : 연관된 항목들을 묶어서 표현

(배열, Dictionary와 다르게) 추가/수정이 불가. → 딱 정해진 값만 열거형 값에 속할 수 있다.

School 열거형 선언. & 열거형 변수 생성 및 값 변경.

 

.rawValue (원시 값)

.rawValue 일부지정

→ 문자열일 때 : 항목 이름 그대로 rawValue로 저장.

→ 정수형일 때 : 0부터 순차적으로 1씩 rawValue 값 증가.

rawValue를 알 때 rawValue를 통해 열거형 변수(상수) 선언.


아래 파일은, 제가 공부하면서 작성한 소스코드 자료입니다.

CH3, CH4_데이터 타입.playground.zip
0.00MB

반응형