
명명법/콘솔로그/문자열 보간법
let : 상수 선언 키워드var : 변수 선언 키워드
1. 기본 데이터 타입 Bool : true, false Int, UInt UInt : 양의 정수. 64비트 Float, Double Float : 실수. 32비트 Double : 실수. 64비트 Character, String : 유니코드 사용.
Swift의 모든 타입 지칭모든 클래스 타입 지칭'값 없음'을 의미. null과 동일

1. 함수선언 2. 반환값 없는 함수 3. 매개변수 없는 함수 4. 매개변수와 반환값 없는 함수 5. 함수의 호출
1. 매개변수 기본값 매개변수의 기본값 지정 가능(기본값 가질 경우 매개변수 목록 중 뒤쪽에 위치하는 것이 좋음) 2. 전달인자 레이블 함수 호출시 사용자 입장에서 매개변수 역할을 명확히 표현(함수 호출시 사용하는 호칭) 전달인자 레이블을 다르게 하면 동일한 이름의
조건을 감싸는 소괄호는 선택사항모든 패턴이 case와 일치하는 한정적 상황 외에 default 구문은 반드시 작성break를 명시하지 않아도 자동으로 case마다 break됨(fallthrough 사용시 break 무시)a...b : a이상 b이하a..<b : a
1. for-in 구문 Java의 for each와 유사 Dictionary는 튜플 형식 forEach문 활용
1. 옵셔널이란? 값이 있을 수도, 없을 수도 있음을 의미 = nil 할당 여부 2. 옵셔널 문법과 선언 옵셔널 문법 : enum + general 옵셔널 선언 3. 옵셔널 방식 옵셔널 바인딩 - if let / if guard * Java에서 NullPointe

구조체란?
참조 타입대문자 카멜케이스 사용다중 상속이 되지 않음프로퍼티 및 메소드 구현클래스 사용
유사한 종류의 값을 모아 정의enum은 데이터 타입이므로 대문자 카멜케이스로 이름을 정의case는 소문자 카멜케이스 사용case별로 값을 가짐(동일한 값을 가질 수 없음)Int, String, UInt 등 사용 가능(Hashable 프로토콜 따르는 타입)열거형에 메소드
1. 값 타입과 참조 타입 비교 값 타입(Value Type) : 데이터 전달시 값을 '복사'하여 전달(각각의 인스턴스가 다른 주소값을 가짐) Struct, Enum, Tuple 일반적으로 Stack영역에 저장됨 참조 타입(Reference Type) : 데이터
코드를 묶어 놓은 블록상수나 변수가 선언된 곳에서 참조를 획득하고 저장 및 전달 가능함수는 이름이 있는 클로저중괄호 {}로 감싸져 있음괄호 ()를 이용해 파라미터 정의\-> 를 이용해 반환 타입 명시하고 "in" 키워드로 실행코드와 분리함수 내부에서 원하는 코드블럭 실
1. 후행 클로저 함수의 매개변수 마지막으로 전달되는 클로저는 함수 밖에 구현 가능 2. 반환타입 생략 컴파일러가 클로저의 타입을 유추할 수 있는 경우 매개변수, 반환타입 생략 가능 3. 단축 인자이름 클로저의 매개변수 이름이 불필요한 경우 $0, $1... 처럼 표현 가능 4. 암시적 반환 표현 클로저의 반환값이 있을 경우 클로저의 마지막 줄은 암시...
1. 프로퍼티 프로퍼티는 구조체, 클래스, 열거형 내부에 구현 (열거형은 연산 프로퍼티만 구현 가능) 프로퍼티 vs 변수, 상수 프로퍼티 : class, struct, enum 안에 있는 변수와 상수 변수, 상수 : class, struct, enum 밖에
프로퍼티 값 변경시 원하는 동작 수행 가능연산 프로퍼티에서 사용 불가변경되려는 값이 기존 값과 동일해도 프로퍼티 감시자는 항상 동작함수, 메소드, 클로저, 타입 등의 지역/전역 변수에 모두 사용 가능willSet/didSet - 둘 중 하나만 구현해도 됨willSet

1. swift에서 제공하는 접근제어자 open 모든 외부 모듈에서 접근 가능 (가장 개방적인 접근 수준) class에서만 사용 가능 (상속, 재정의 가능하기 때문) public 모든 외부 모듈에서 접근 가능 (가장 개방적인 접근 수준) open과 달리

기존 struct, class, enum, protocol 타입의 원본 코드를 수정하지 않고 새로운 기능을 추가할 수 있는 키워드. 코드의 유지보수와 가독성을 향상시킴extension 키워드 사용하나의 타입에 여러번의 extension 가능확장 가능한 것연산 프로퍼티

중첩된 타입 타입 안에 다른 타입을 정의하는 것 class, enum, struct에서 사용 가능 코드의 가독성을 높이고 타입간의 연관성을 명확히 함

class, struct, enum에서 공통으로 구현해야 하는 메소드와 프로퍼티의 청사진을 정의 (like 설계도)프로토콜 자체는 기능을 구현하지 않으며, 오직 설계만 제공class, struct, enum에서 프로토콜을 채택할 수 있으며, 프로토콜에서 정의한 프로퍼티
SOLID