[TIL] SWIFT 기본 문법 배우기

남보경·2023년 7월 20일
0

TIL

목록 보기
5/10
post-thumbnail

swift 기본 문법 중 기존에 알고 있던 것을 제외하고 중요하다고 생각되는 것들 위주로 정리하고 간략하게 핵심만 간추려 보고자 한다.

Property - Stored Property(상수 선언, 변수 선언), Computed Property(var를 이용한 선언)

다양한 데이터 묶음 형식 - Tuple(튜플)은 관련된 값을 단순히 묶은 묶음에 가깝다. Any는 배열로 있으며 어떤 데이터 타입도 넣을 수 있지만사용할 때 꼭 형 변환을 해줘야 한다

Enum(열거형) - 관련된 값으로 이뤄진 그룹을 같은 타입으로 선언해서 type-safety를 보장

고차함수

  • map 함수는 컬렉션 내부의 기존 데이터를 변형해서 새로운 컬렉션을 생성해준다.

변형시키고 싶은 데이터.map {}

  • filter 함수 기존 컨테이너의 요소 중 조건에 만족하는 값에 대해 새로운 컨테이너를 만들어 반환한다. 컨테이너라는 단어는 배열이 될 수 밖에 없기 때문에 배열이라고 생각해도 된다

let 변수(새로운 컨테이너) = 기존 컨테이너.filter { 만족해야하는 조건 }

  • reduce 함수는 기존의 컨테이너의 요소에 대해 정의한 클로저로 매핑한 결과를 새로운 컨테이너로 반환함

옵셔널

  • 값이 없을 수도 있는 상황(nil)에서 옵셔널을 사용하며 물음표로 나타낸다. 옵셔널은 박스와 같다. 옵셔널로 포장한(wrapping)한 값을 언래핑(unwrapping)하여 해당값에 접근할 수 있다. 하지만 또 박스를 열어보면 값이 없을 수도 있는 것이다!(nil의 경우)

  • 변수에 nil을 할당하면 값이 없는 상태의 옵셔널 프로퍼티를 만들 수 있다

  • 옵셔널 바인딩은 옵셔널 값이 nil인지 검사한 후 값이 존재하는 경우에 그 값을 다른 변수에 대입시켜서 바인딩하는 것이다/강제 언래핑보다는 빈 값을 체크하는 것이 훨씬 안전하다.(강제 언래핑의 경우 어플이 강제종류 될 가능성을 높인다)
    -> 그렇지만 꼭 강제 언래핑이 나쁜 것만은 아니라는 튜터님도 계셨다. 필요에 의해 사용될 수 있기에 잘 생각해서 사용하자.

  • 옵셔널 체이닝은 옵셔널을 연쇄적으로 사용하는 것으로 '.'을 통해 내부 프로퍼티나 메서드에 옵셔널 값이 있는 경우 옵셔널 체이닝을 이용해 연속적으로 접근한다.

객체 지향 프로그래밍의 특성

  • 객체간의 관계를 설계하는 프로그래밍 방법론으로 각 객체들이 메세지를 주고 받으며 데이터를 처리할 수 있다.

  • 클래스는 속성(property)과 행위(method)를 정의한 것으로, class 자체가 사용자가 정의한 데이터형(data type)이 된다고 할 수 있다. 클래스는 Initializer를 통해 초기값을 설정할 수 있는데 property에 기본 값이 없는 경우 이니셜라이저를 필수로 구현해야 한다.

  • 클래스는 상속이 가능하다.(method, property 등등) 부모 클래스를 superclass라고 부르고 부모클래스를 상속한 클래스는 subclass라고 부른다. 부모 클래스의 요소에 접근하기 위해 'super'라는 키워드를 사용해서 접근가능

  • 다른 클래스의 코드를 재사용할 목적으로 상속을 사용하는 경우, 서브 클래스는 슈퍼 클래스의 특성 외에 자기 자신의 프로퍼티, 메서드 등을 추가할 수 있다.

  • 서브 클래스에서 overriding 키워드를 사용해 슈퍼 클래스에서 상속받은 것을 재정의 할 수 있다. 이를 막고 싶다면 부모 클래스에서 final로 method를 정의하면 된다.

profile
꿈꾸자 그리고 그것을 이뤄내자

0개의 댓글