본문 바로가기

전체 글133

Closer에 관하여 클로저 -클로저는 어떤 기능을 하는 코드를 블록으로 모아놓은 것을 말한다. -우리가 아는 함수도 클로저에 포함되어 있는 개념이다. 클로저의 종류 Named Closure : 이름이 있는 클로저로 우리가 알고있는 함수를 말한다.(클로저이지만 우리에게 익숙한 함수로 불릴 뿐) UnNamed Closure : 이름이 없는 클로저 지금 배우고자 하는 것은 이름이 없는 클로저이다. 기본 클로저 표현 -기본 클로저는 다음과 같이 표현한다. 클로저의 표현식은 클로저 헤드와 클로저 바디로 나누어진다. 1) 클로저 헤드 : { (매개변수 : 매개변수 타입) -> return 반환타입 2) 클로저 바디 : //실행구문 } 클로저 중간에 있는 in 키워드는 헤드와 바디를 구분지어준다. 매개변수와 반환타입을 생략한 클로저 -.. 2023. 3. 1.
연산자 정리 1. 할당 연산자 A = B -> A와 B의 데이터 타입이 같을 때, A의 값에 B를 할당한다. 2. 산술 연산자 1) A + B 3) A * B 2) A - B 4) A / B 5) A % B 3. 비교 연산자 1) A == B : A와 B의 값이 같은지 확인하여 Bool 타입으로 리턴값을 내줌. 2) A != B : A와 B의 값이 다른지 확인하여 Bool 타입으로 리턴값을 내줌. 3) A >= B : A가 B보다 크거나 같은지 확인하여 Bool 타입으로 리턴값을 내줌. 4) A B : A가 B보다 큰 값인지 확인하여 Bool 타입으로 리턴값을 내줌. 6) A < B : A가 B보다 작은 값인지 확인하여 Bool 타입으로 리턴값을 내줌. 7) A === B : A와 B가 참조타입일 때, A와 B가 같.. 2023. 2. 28.
열거형에 관하여 2 열거형의 연관값(Associated Values) -열거형의 각 항목들은 연관값이라는 것을 가질 수 있다. -연관값은 각 항목 옆에 소괄호를 통해 표현할 수 있고, 일부 항목들이 연관값을 가졌다고 모든 항목이 연관값을 가질 필요는 없다. ex) 연관값 각 항목 옆에 튜플을 통해 내가원하는 연관값을 받을 수 있게 선언할 수 있다. 연관값을 사용하고 싶을 때는 . 을 이용해서 이니셜라이저안에 값을 넣어 사용할 수 있다. 열거형의 항목순회 -열거형에 포함된 모든 항목들을 알고 싶을 때, CaseIterable 프로토콜을 사용할 수 있다. -CaseIterable을 채택하면 allCases라는 타입 프로퍼티를 통해 모든 항목의 컬렉션을 생성할 수 있다. ex) : 콜론을 통해 CaseIterable 프로토콜 채.. 2023. 2. 17.
열거형에 관하여 열거형에 대해서 알고는 있지만 프로젝트를 할 때, 열거형을 자주 사용하지 않기 때문에 개념을 정리해보고자 한다. 열거형(Enumeration) -연관된 항목들을 묶어서 표현할 수 있는 타입이다. -배열이나 딕셔너리는 내부 요소를 추가하거나 수정할 수 있지만, 열거형은 프로그래머가 정의한 항목 외에는 추가나 수정이 불가능하다. -이미 정해놓은 값만 사용하기 때문에 코드를 작성할 때, 오타낼 가능성을 줄여주어 안정성이 향상된다. -Value(값)타입으로 stack 영역에 저장된다. (성능이 좋다.) -열거형이 사용되면 좋은 상황 1. 제한된 선택지를 주고 싶을 때 2. 정해진 값 외에는 입력받고 싶지 않을 때 3. 예상된 입력 값이 한정되어 있을 때 열거형의 사용 -enum 키워드를 사용하여 선언한다. 위의.. 2023. 2. 15.
함수와 메소드의 차이 먼저 결론부터 짓고 가면 함수안에 메소드가 있는 형태다. 메소드 -메소드는 클래스, 구조체, 열거형에 속해 있는 함수를 말한다. -메소드의 종류에는 인스턴스 메소드와 타입 메소드가 있다고 이전에 배웠다. 인스턴스 메소드를 사용하기 위해서는 인스턴스를 만든 후 .을 통해 접근이 가능하고, 타입 메소드는 타입 . 을 통해 접근이 가능. class Student { static func introduce1() { print("나를 소개") } func introduce2() { print("나를 소개") } } Student.introduce1() //타입 메소드 let student = Student() student.introduce2() //인스턴스 메소드 함수 -클래스, 구조체, 열거형과 무관하고 재사.. 2023. 2. 6.
SingleTon(싱글톤)에 관하여 싱글톤 패턴 -Class가 인스턴스를 하나만 가지도록 제한하면서 언제 어디서든 인스턴스에 접근할 수 있도록 하는 디자인 패턴이다. -특정 기능을 수행하는 객체 하나를 생성하여, 공용으로 사용할 때 사용된다. 싱글톤 구현 방법 1. 싱글톤 클래스가 메모리에 처음으로 올라갈 때, 한 번만 초기화되는 타입 인스턴스를 정의한다. class Singleton { static let shared = Singleton() } 언제 어디서든 접근하기 위해 static 키워드를 통해 타입 프로퍼티를 만들고 인스턴스를 정의한다. 2. 클래스의 기본 이니셜라이저 메소드를 private으로 제한한다. class Singleton { static let shared = Singleton() private init() { } }.. 2023. 2. 3.