반응형

Programming/Swift 23

[Swift] 문법 다시보기 - Switch

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. Switch fallthrough case 연속 실행 where 조건 확장 (ex: case "사원" where 연차 > 5;) default 한정된 범위의 값을 입력 값으로 받게될 때 값에 대응하는 각 case를 구현한다면 default는 구현하지 않아도 된다. 그렇지 않다면 default는 필수 예제 : case deafult, case _ unknown 열거형에 새로운 case가 추가되었을 때 논리적 오류가 발생할 수 있는 여지가 있음 이런 문제를 방지하기 위한 속성 예제 : @unknown case _

Programming/Swift 2021.10.10

[Swift] 문법다시보기 - 열거형

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 열거형 연관된 항목들을 묶어서 표현할 수 있는 타입 프로그래머가 정의해준 항목 값 외에는 추가/수정 불가 연관 값 스위프트의 열거형 각 항목이 연관 값을 가지게 되면 기존 프로그래밍 언어의 공용체 형태를 띌 수도 있다. 열거형 내의 항목(case)이 자신과 연관된 값을 가질 수 있다. 연관 값은 각 항목 옆에 소괄호로 묶어 표현할 수 있다. // ex. 연관 값을 갖는 열거형 enum MainDish { case pasta(taste: String) case pizza(dough: String, topping: String) case chiken(withSource: Bool) case rice } var dinner: MainDish =..

Programming/Swift 2021.10.10

[Swift] Computed Properties (연산 프로퍼티)

Computed Properties 공식문서 연산 프로퍼티 저장된 속성 외에 클래스, 구조 및 열거 형은 실제로 값을 저장하지 않는 계산 된 속성을 정의 할 수 있습니다. 대신 getter와 setter를 제공하여 다른 속성과 값을 간접적으로 검색하고 설정합니다. 기존에는 값을 저장하기 위한 프로퍼티였는데 연산 프로퍼티는 그때 그때 특정한 연산을 통해 값을 리턴하거나 변환시킨다 예제 struct Size { var width = 0.0 var height: Double { get { return height } set (newValue) { height = newValue * 2 } } }위 예제에서 height에 get, set 연산 프로퍼티를 지정하였는데, 저대로 작성하면 warning이 발생한다 h..

Programming/Swift 2019.07.28

[Swift] Lazy Stored Properties

Lazy Stored Properties 공식문서 lazy stored property는 문자 그대로 게으른 저장 프로퍼티이다 왜 게으를까? lazy로 선언한 객체는 사용될 때까지 계산되지 않는다 swift 공식 문서 코드는 아래와 같이 되어 있다 class DataImporter { /* DataImporter is a class to import data from an external file. The class is assumed to take a nontrivial amount of time to initialize. */ var filename = "data.txt" // the DataImporter class would provide data importing functionality her..

Programming/Swift 2019.07.28

[Swift] Enumeration (열거형) 살펴보기

Swift - Enumeration (열거형) An enumeration defines a common type for a group of related values and enables you to work with those values in a type-safe way within your code. Swift의 열거형은 C나 C++ 처럼 0을 기본 값으로 갖지 않는다. enum CompassPoint { case north case south case east case west }enum 타입의 변수를 선언할 때는 CompassPoint.east 라고 해도 되고 goEast 처럼 이미 타입을 지정한 경우는 .east 만써도 컴파일러가 알게 된다 var goSouth: CompassPoint = C..

Programming/Swift 2019.07.10

[Swift] Properties 1 - Stored properties (저장 프로퍼티)

Swift - Stored properties (저장 프로퍼티) Properties 프로퍼티는 값을 특정 class, struct, enum과 연결한다 Stored Properties (저장 프로퍼티) computed properties (연산 프로퍼티) type properties (타입 프로퍼티) 총 세개로 나뉜다. Stored Properties (저장 프로퍼티) 저장 프로퍼티는 특정 class또는 struct 인스턴스의 일부로 저장되는 상수 또는 변수 변수를 저장하면 변수 저장 프로퍼티, 상수를 저장하면 상수 저장 프로퍼티 라고 부른다 이 프로퍼티를 선언할 때 기본 값을 설정할 수 있습니다 struct FixedLengthRange { var firstValue: Int let length: In..

Programming/Swift 2019.07.09

[Swift] Swift Any, AnyObject 차이 알아보기

Swift Any, AnyObject Swift에는 모든 타입을 담을 수 있는 데이터 타입이 있다. Any 와 AnyObject 이다 두 차이는 Any는 변수 또는 상수를 마음껏 담을 때 사용하는 타입이라면 AnyObject는 클래스의 인스턴스만 할당할 수 있다 // 다양한 타입의 변수 담기 var someVar: Any = "123" someVar = 12 someVar = 56.2 // 클래스의 인스턴스 var some: AnyObject = Some() 하지만 이 두 타입 모두 사용하지 않는 편이 낫다 사용하면 매번 타입 체크 및 형변환을 해야하기 때문에 처음부터 해당하는 타입을 지정하는 편이 낫다 인스턴스 많은 언어에서 클래스의 인스턴스를 객체라고 부르지만 스위프트 공식 문서에서는 한정적 의미로 ..

Programming/Swift 2019.06.12

[Swift] - Swift Type 알아보기

Swift Type Swift는 root가 없다 $noRoot Swift는 특별한 root 타입이 없다 Java, Objective-c 등 정적 타입 언어는 root 타입을 갖는다. Java java.lang.Object ㄴ java.lang.Number ㄴ java.lang.Integer Objective-c NSObject ㄴ NSValue ㄴ NSInteger Swift Int Java, Objective-c 모두 프로토콜을 따르며 Swift는 Int가 자신 자체의 타입이며 구조체로 다신의 타입을 정의한다 Swift에서는 모든 것이 상속없이 구조체이다 각 타입 간의 커플링을 느슨하게 처리 전체 타입 시스템에서 확장성 up 클린 아키텍쳐 설계 가능 명명된 타입(Named Type) : 사용할 때 이름..

Programming/Swift 2019.06.11

[Swift4.2] Swift로 함수형 프로그래밍 시작하기 - Pure Function

최근 듣는 강의 - 인프런 Swift로 함수형 프로그래밍 시작하기몇개 안들었지만 좋은 강의라는 게 느껴집니다. Pure function 특정 input에 대해서 항상 동일한 output을 반환하는 함수 output을 만드는데 input만을 사용한다는 의미 함수 외부의 값을 변경하거나 저장하는 등 사용하지않아 side-effect가 없다 side-effect (부작용) 함수가 결과 값 이외에 외부의 값을 변경하게 되면 부작용이 있다고 할 수 있음 함수형 프로그래밍을 통해 이 부작용을 최소화할 수 있음 만일 함수가 외부 값을 변경하거나, 혹은 외부 값을 참조해서 output을 결정하게 되면 해당 변수/함수의 예상치 못한 값 변경이 있다면 에러가 발생할 수 있는 상황이 생기게 된다. Pure Function ..

Programming/Swift 2019.02.15
728x90
반응형