목록분류 전체보기 (179)
study record
*책 “스위프트 프로그래밍”을 학습하고 작성한 글입니다. 스위프트는 데이터 타입 안전을 위하여 각기 다른 타입끼리의 값 교환을 엄격히 제한한다. 기존 언어의 타입 변환과 스위프트의 타입 변환 // C 언어 double value = 3.3 int convertedValue = (int)value convertedValue = 5.5 // double -> int 암시적 데이터 타입 변환 // swift 언어 var value: Double = 3.3 var convertedValue: Int = Int(value) convertedValue = 5.5 //오류 스위프트 타입캐스팅 스위프트의 타입캐스팅은 인스턴스의 타입을 확인하거나 자신을 다른 타입의 인스턴스인양 행세할 수 있는 방법으로 사용할 수 있다...
어떤 클래스로부터 상속을 받으면 상속받은 클래스는 그 어떤 클래스의 자식클래스라고 표현한다. 자식클래스에게 자신의 특성을 물려준 클래스를 부모클래스라고 표현한다. 상속은 스위프트의 다른 타입과 클래스를 구별 짓는 클래스만의 특징이다. 스위프트의 클래스는 부모클래스로부터 물려받은 메서드를 호출할 수 있고 프로퍼티에 접근할 수 있으며 서브스크립트도 사용할 수 있다. 또, 부모클래스로부터 물려받은 메서드, 프로퍼티, 서브스크립트 등을 자신만의 내용으로 재정의할 수도 있다. 스위프트는 부모클래스의 요소를 자식클래스에서 재정의할 때 자식클래스가 부모클래스의 요소들을 재정의한다는 것을 명확히 확인해주어야 한다. 상속받은 프로퍼티에 프로퍼티의 값이 변경되었을 때 알려주는 프로퍼티 감시자도 구현할 수 있다. 연산 프로..
서브스크립트는 별도의 설정자 또는 접근자 등의 메서드를 구현하지 않아도 인덱스를 통해 값을 설정하거나 가져올 수 있다. 예를 들어 someArray라는 Array 인스턴스의 인덱스를 통해 해당 인덱스의 값에 접근하고 싶다면 someArray[index]라고 표현하는 것이 서브스크립트이다. 서브스크립트를 여러 개 구현해도 외부에서 서브스크립트를 사용할 때는 서브스크립트를 사용할 때 전달한 값의 타입을 유추하여 적절한 서브스크립트를 선택하여 실행한다. 이렇게 여러 서브스크립트를 한 타입에 구현하는 것을 서브스크립트 중복 정의라고 한다. 서브스크립트는 통상 하나의 매개변수를 갖는 것이 보통이지만 타입에 따라 여러 매개변수를 가지는 경우도 있다. 매개변수의 타입과 반환 타입에는 제한이 없다. 함수와 마찬가지로 ..
프로그래밍에서 모나드가 갖춰야 하는 조건 타입을 인자로 받는 타입(특정 타입의 값을 포장) 특정 타입의 값을 포장한 것을 반환하는 함수가 존재 포장된 값을 변환하여 같은 형태로 포장하는 함수가 존재 모나드를 이해하는 출발점은 값을 어딘가에 포장하는 개념을 이해한 것에서 출발한다. 스위프트에서 모나드를 사용한 예 중에 하나가 바로 옵셔널이다. 옵셔널은 값이 있을지 없을지 모르는 상태를 포장하는 것이다. 함수객체와 모나드는 특정 기능이 아닌 디자인 패턴 혹은 자료구조라고 할 수 있다. 컨텍스트 이번 파트에서 컨텍스트는 '콘텐츠를 담은 그 무엇인가'를 뜻한다. 물컵에 물이 담겨있으면 물은 콘텐츠고 물컵은 컨텍스트라고 볼 수 있다. 옵셔널은 열거형으로 구현되어 있어서 열거형 case의 연관값을 통해 인스턴스 안..