
멤버가 순서를 가진 리스트 형태의 컬렉션 타입이다. 흔히 알고 있는 배열의 개념과 같다.키와 값의 쌍으로 이루어진 컬렉션 타입이다. var dict: String: Any = :var dict = String: Any//Dictionary 활용==============

for-in for-in은 콜렉션 타입에서 효과적으로 사용할 수 있는 반복문이다. 딕셔너리의 경우에는 iteration item으로 튜플이라는 타입이 들어온다.

열거형 Enum 열거형은 연관된 항목을 열거해 놓았다고 해서 열거형이라고 한다. 열거형은 아래와 같은 경우에 사용된다. 제한된 선택지를 주고 싶을 때 정해진 값 외에는 입력받고 싶지 않을 때 Number라는 타입으로 num 매개변수의 타입을 제한함으로써 Number

변수는 값을 저장하는 공간. 변수는 var 라는 키워드를 앞에 붙여 표현한다. 변수에 할당한 값은 언제든 변경할 수 있다.상수는 값을 변경할 수 없는 공간이다. 상수에는 값을 한번 할당하면 그 이후로는 상수의 값을 변경할 수 없다. 키워드는 let이다.

Swift의 모든 타입을 지칭하는 키워드이다.Any 타입에 String 자료를 넣어두었더라도 Any는 String 타입이 아니기 때문에 할당할 수 없다.모든 클래스 타입을 지칭하는 프로토콜이다.없음을 의미하는 키워드이다. 다른언어의 null과 유사한 표현이다. 참고

📍함수 📍매개변수 값 지정 매개변수에 전달될 값을 미리 지정할 수 있다. 📍데이터 타입으로서의 함수 함수를 호출할 때 함수 사용자의 입장에서 매개변수의 역할을 좀 더 명확하게 표현하고자 할 때 사용.

옵셔널 타입은 값이 있을수도 있고 없을수도 있음을 의미한다. nil의 가능성을 명시적으로 표현한다.문자열 "123"은 int값 123으로 변환 가능하지만 "hello"는 int값으로 변환이 불가능하다. 문자열 타입을 int 타입으로 변환하는 경우 값이 있을 수도 있지만

클로저 명명된 함수 생성없이 실행되는 코드 그룹이다. 익명함수와 유사하다.이 코드 블록은 변수나 함수의 인자로 전달될 수 있고 실행도 가능하다. 클로저의 본문의 시작은 in 키워드로 시작한다. 클로저의 파라미터는 기본값을 가질 수 없다. > 클로저를 인수로 사용할 수

타입, 객체 타입은 데이터와 기능을 용도에 맞게 묶어 구조화해놓은 것으로 객체라고 부르기도 한다. Swift에서 타입의 종류는 크게 3가지로 열거형, 구조체, 클래스가 있다. 타입과 연관된 값들을 속성이라고 부르며, 타입과 연관된 함수를 메소드라고 부른다. proper

📁 초기화 클래스는 초기화가 필요한 반면 구조체는 초기화가 필요하지 않다. 인스턴스의 프로퍼티에 값이 있다는 것이 항상 보장되어야 한다. 위의 클래스는 정의된 프로퍼티에 기본값이 없기 때문에 프로퍼티를 채워주는 초기화 메서드를 만들어주어야 한다. 디이니셜라이저 또한

📁 프로퍼티 프로퍼티는 타입 내부에 정의된 상수나 변수이다. 크게 저장 프로퍼티와 연산 프로퍼티로 나뉘는데 더 상세하게 정리해보자! 📝 저장 프로퍼티 (stored property) 일반적으로 사용하는 프로퍼티이다. 인스턴스나 타입의 변수 또는 상수로 값을 저장하

📁 타입 캐스팅 변수나 객체의 타입을 다른 타입으로 변환하는 프로세스를 타입 캐스팅이라고 한다. 📝 is

고차함수는 클로저를 공부할때 살짝 공부한 적이 있다. 고차함수는 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수 를 말한다. 함수에 매개변수는 타입이 정해져 있다. 따라서 함수에 전해줘야 하는 클로저의 타입도 고차함수마다 다 다르게 정해져 있다

📁 예외처리 예외처리는 프로그램에서 에러가 발생한 상황을 감지하고 이에 대응하는 과정이다. Swift에서는 런타임에 에러가 발생한 경우, 이를 처리를 지원하는 클래스를 제공한다. *런타임 : 프로그램이 컴파일되고 실행되는 동안에는 런타임이라는 단계가 있는데 런타임에

📁 접근제한자 접근 제한자는 코드 요소에 대한 외부 접근을 제한하여 모듈 간의 접근성과 보안을 조절한다. 각 타입에 특정 접근수준을 지정할 수 있고, 타입 내부의 프로퍼티, 메서드, 이니셜라이저, 서브스크립트 각각에도 접근수준을 지정할 수 있다. 접근 수준을 명시하는

📁 프로토콜 Swift의 프로토콜은 메서트, 프로퍼티, 이니셜라이저 및 다른 특정 작업 또는 기능에 대한 청사진이다. 즉 영어 프로토콜의 의미처럼, 특정 역할을 하기 위한 메소드, 프로퍼티, 기타 요구사항 등을 정의 해놓은 “규약” 혹은 “약속”이라고 생각하면 된다.

📁 Extension extension은 기존 타입에 기능을 추가한다. 여기서 기존의 타입은 구조체, 열거형, 클래스를 말한다. 확장은 타입에 새로운 기능을 추가할 수는 있지만, 기존에 존재하는 기능을 재정의할 수는 없다! 그렇다고 기능을 추가하기 위해 타입의 구현된

📁 제네릭 제네릭은 함수, 타입 및 데이터 구조에 대한 유연하고 추상적인 코드를 작성할 수 있게 해주는 기능으로, 정의한 요구사항에 따라 모든 타입에서 동작할 수 있다. (이렇게 말하면 무슨 말인지 잘 모르겠다..🫨) 예시를 통해 알아보자! 두 정수의 값을 바꿔주

한정된 메모리를 잘 관리하기 위해.. 📁 ARC (Automatic Reference Counting) 스위프트의 ARC는 메모리 관리 기법 중 하나이다. 영어 그래도 자동 참조 카운팅, 즉 참조를 자동으로 카운팅하여 메모리를 관리한다는 것이다..!🫤 ARC의

프레임워크는 애플리케이션 내부의 뼈대나 기본구조를 미리 만들어 놓은 것이다. 프레임워크에는 이미 다양한 코드들이 구현되어 있고, 이를 import하면 구현된 코드들을 사용할 수 있는 것이다.!! 프레임워크는 라이브러릴를 포함한 코드의 집합 ("라이브러리들의 모음")라이

📁 Extension extension은 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있는 기능이다. 영어 해석 그대로 확장을 의미한다. 기능을 추가하려는 타입의 구현된 소스코드를 알지 못해도 타입만 알고 있다면 그 타입의 기능을 확장할 수 있