본문 바로가기

Swift

(19)
[Swift] 정규식 (규식이) 문제 상황 알고리즘 테스트중 정규식을 만남. 그와의.. 첫만남.. 이메일, 아이디, 비밀번호, 전화번호 등을 설정할 때 그들 나름의 규칙이 있습니다. 그 규칙들을 쉽게 표현할 수 있는 것이 정규식입니다. 아래는 이메일의 정규식입니다. (규식이...) 잘 모르겠죠? 네 저도 잘 몰랐습니다.. 같이 공부해요! 스크롤을 내려 보시죵! 해결 방법 제가 하나하나 정리를 하려고 했으나 아래의 블로그가 제가 읽은 수많은 블로그 중 이해가 제일 잘되는 곳입니다. evan-moon.github.io/2020/07/24/about-regular-expression/ 불규칙 속에서 규칙을 찾아내는 정규표현식 개발자들은 자연어로 주어지는 문제 상황을 파악하고 프로그램을 설계하고 작성하는 사람들이다. 이런 업무를 수행하기 위해..
[Swift] 콜렉션 타입 Collection Types 최근 C언어 및 Dockfile을 자주 만지면서 swift 언어가 가물가물 해졌습니다.. ㅠ 알고리즘도 가끔 풀겸 !! 콜렉션 타입을 리마인드 해보겠습니다. ㅎ 배열 Array 1. 생성 - 빈배열 생성!! 배열 말고 다른 콜렉션 타입을 쓰는것을 까먹었다면 그냥 CollectionType() 해버리자. - 초기화하면서 생성 일정 값으로 초기화 시켜주는 것이고 그냥 .. 값을 다 지정해줘도 된다. ex) var yeparkDoubles = [1.1, 1.2] 2. 추가 append를 써줄 수있고. 각각 만든 배열을 더해줄 수도 있다.!! 3. 제거 popLast() 마지막을 제거하고 그 값을 옵셔널로 반환 removeLast() 얘도 마지막을 제거하고 반환하는데 옵셔널 반환이 아니에요..! removeFi..
[Swift] 상속 - rewind 상속은 클래스와 프로토콜에서 가능하다. 열거형과 구조체는 상속이 불가능 하다. 또한 스위프트는 단일 상속이며 다중 상속을 할 수 없다. 간단한 Person 클래스를 만들었다. - final은 이 함수를 재정의 할 수 없게 만드는 키워드이다. - static은 타입 메서드를 재정의 할 수 없게 만드는 키워드이다. - class는 타입 메서드를 재정의 할 수 있다고 말하는 키워드이다. 여기서 만약 final class func bla 라는 타입메서드가 있다면 static func bla와 같은 기능을 한다. 위의 Person 클래스를 상속하는 클래스를 만들었을 때 override를 사용하여 함수를 재정의 할 수 있다. 또한 super를 사용하여 부모 클래스의 함수를 불러올 수도 있다.
[Swift] 프로퍼티 감시자 - rewind 프로퍼티 감시자를 사용하면 프로퍼티의 값이 변경될 떄 원하는 동작을 수행 할 수 있다. 프로퍼티에 코드 블럭을 한뒤 이미지와 같이 WillSet, didSet을 사용하면 된다.! 매개변수를 생략하면 암시적으로 WillSet에는 newValue, didSet에서는 oldValue로 변수이름이 할당된다. 그리고 연산 프로퍼티 내에서는 프로퍼티 감시자를 쓸 수 없다. 그외의 지역/전역 변수에 모두 사용 가능하다.
[Swift] Property 프로퍼티 - rewind - 프로퍼티는 구조체, 클래스, 열거형 내부에 구현할 수 있습니다. - 열거형 내부에는 연산 프로퍼티만 구현할 수 있습니다. - 연산프로퍼티는 var로만 선언할 수 있습니다. 프로퍼티의 종류 - 저장 프로퍼티 - 연산 프로퍼티 set(입력 받을 변수명)을 넣습니다. 예) westernAge = 20 했을 떄 20을 받을 변수로 inputValu 를 씁니다! set은 매개변수를 암시적으로 newValue로 지정해줍니다. 또한 연산 프로퍼티는 (읽기, 쓰기), (읽기) 두가지만 가능합니다. (쓰기)전용은 안됩니다. - 타입 프로퍼티 타입 프로퍼티는 클래스나 구조체에서 static, class를 쓰고 만드는 프로퍼티입니다. 이러한 타입 프로퍼티도 연산 프로퍼티로 만들 수 있습니다.(타입 연산 프로퍼티) - 지..
[Swift] Closer 클로저 - rewind 코드의 블럭 일급 시민 (first - citizen 변수, 상수 등으로 저장, 전달인자로 전달이 가능 함수 : 이름이 있는 클로저 { (매개변수 목록) -> 반환타입 in 실행 코드 } 간단한 sum을 클로저로 구현. sum은 (Int, Int) -> Int 형인 변수 그리고 클로저 코드 블럭을 sum에 넣는다. 이의 응용으로 클로저는 주로 함수의 전달 인자로 자주 사용된다. Closer 축약 문법 calculate 함수를 예로 들겠습니다. method 매개 변수에 클로저 코드 블럭을 넣습니다. 여기서 클로저 변수가 마지막 전달인자라면 매개 변수의 이름을 생략하고 소괄호 외부에 코드 블럭을 두어 구현할 수 있습니다. 반환 타입을 생략할 수도 있습니다. 이미 calculate 함수가 어떤 함수인지 알기 ..
[Swift] Class, Struct, Enum - rewind Class Struct Enum - 전통적인 OOP 관점에서의 클래스 - 단일상속 - (인스턴스/타입) 메서드 - (인스턴스/타입) 프로퍼티 - 참조 타입 - Apple 프레임워크의 대부분의 큰 뼈대는 모두 클래스로 구성 - C 언어 등의 구조체보다 다양한 기능 - 상속 불가 - (인스턴스/타입) 메서드 - (인스턴스/타입) 프로퍼티 - 값 타입 - Swift의 대부분의 큰 뼈대는 모두 구조체로 구성 - 다른 언어의 열거형과는 많이 다른 존재 - 상속 불가 - (인스턴스/타입) 메서드 - (인스턴스/타입) 연산 프로퍼티 - 값 타입 - Enumeration - 유사한 종류의 여러 값을 유의미한 이름으로 한 곳에 모아 정의 - 열거형 자체가 하나의 데이터 타입 열거형의 case 하나하나 전부 하나의 유의미..
[Swift] 열거형 Enum - rewind 열겨형 Enum의 case는 고유의 값을 가진다. 두번 째 껀 타입 추론을 할 수 없어서 오류가 나는 것. 주로 Enum과 switch는 세트로 자주 쓰이며 Enum의 case switch의 case에 다 쓰면 default가 필요 없다. apple = 0 처럼 rawValue를 추가할 수 있다. Fruit: Int Int형의 rawValue를 가지고 peach는 2라는 값을 받게 된다 정렬순으로 받는다. rawValue형이 String일 경우 묵시적으로 case 이름이 rawValue가 된다. Enum의 rawValue 자료형으로 함수를 해보고 싶엇으니 rawValue는 Hashable 프로토콜을 따르는 모든 타입이 원시값 타입으로 지정 가능.. enum 자료형도 nil을 가질 수 있다. rawValu..