Swift
-
상속 (Inheritance)Swift 2020. 12. 10. 03:23
클래스는 메소드, 프로퍼티와 다른 특징들을 다른 클래스로부터 상속할 수 있습니다. 기반 클래스 정의 (Defining a Base Class) 어떤 클래스도 상속받지 않은 클래스를 기반 클래스라고 합니다. 서브 클래싱 (Subclassing) 서브 클래싱을 하면 부모로부터 메소드와 프로퍼티 등을 상속받고, 자기 자신의 고유한 특성도 추가할 수 있습니다. class SomeChildClass: SomeParentClass{ } class Vehicle { var currentSpeed = 0.0 var description: String { return "traveling at \(currentSpeed) miles per hour" } func makeNoise() { // do nothing - an ..
-
메소드 (Methods)Swift 2020. 12. 8. 03:35
특정 타입의 클래스, 구조체, 열거형과 관련된 함수를 메소드라고 합니다. 예를 들어, String에는 hasPrefix가 있습니다. 특정 타입의 인스턴스에서 실행할 수 있는 메소드를 인스턴스 메소드, 특정 형과 관련된 메소드를 타입 메소드라고 합니다. Swift에서는 클래스 뿐만 아니라 구조체, 열거형에서도 메소드를 사용할 수 있습니다. 인스턴스 메소드 (Instance Methods) 인스턴스 메소드는 클래스, 구조체, 열거형의 인스턴스에 속한 메소드입니다. 이 메소드를 통해서 인스턴스 내의 값을 다룰 수 있습니다. 인스턴스 메소드는 해당 인스턴스에서만 실행이 가능합니다. class Counter { var cnt = 0 func increment { cnt += 1 } func increment(by..
-
클로저 (Closures)Swift 2020. 12. 5. 01:22
클로저 (Closure)는 코드 블록으로, 어떤 상수나 변수의 참조를 캡쳐해 저장합니다. Swift는 이 캡쳐와 관련한 모든 메모리를 알아서 처리합니다. 전역 함수(global functions)와 중첩 함수(nested function)은 실제 클로저의 특별한 경우입니다. 다음은 세 가지 형태의 클로저입니다. 전역 함수 : 이름이 있고 어떤 값도 캡쳐하지 않는 클로저 중첩 함수 : 이름이 있고 관련한 함수로부터 값을 캡쳐할 수 있는 클로저 클로저 표현 : 경량화된 문법이 쓰여지고 관련된 문액(context)로부터 값을 캡쳐할 수 있는 이름이 없는 클로저 클로저 표현은 문멕에서 파라미터 타입과 return 타입을 추론할 수 있고, 참조 타입입니다. 또한 후위 클로저 형식입니다. 클로저 표현 (Closur..
-
클래스와 구조체 (Classes and Structures)Swift 2020. 11. 10. 20:02
클래스와 구조체는 코드를 좀 더 조직화시키기 위해서 사용합니다. Swift는 다른 프로그래밍 언어와 다르게 interface파일과 imlementation파일을 분리해서 만들지 않아도 됩니다. 하나의 파일에 구조체나 클래스를 정의하면, Swif가 알아서 해당 클래스와 구조체를 사용할 수 있는 인터페이스를 생성해줍니다. 클래스와 구조체의 비교 (Comparing Classes and Structures) 공통점 - 값을 저장하기 위한 프로퍼티 정의 - 기능을 제공하기 위한 메서드 정의 - subscript 문법을 이용해 특정 값을 접근할 수 있음 - 초기 상태를 설정할 수 있는 initializer 정의 - 기능 확장 - 어떤 protocol을 따른다고 선언을 하였다면, protocol이 정한 규칙을 무조..
-
프로퍼티 (Properties)Swift 2020. 11. 10. 19:10
프로퍼티는 클래스, 구조체, 열거형과 관련한 값으로, 프로퍼티의 종류에는 저장 프로퍼티(Stored Properties)와 계산된 프로퍼티 (Computed Properties)가 있습니다. 저장 프로퍼티 : 저장 프로퍼티는 값을 저장하고 있는 프로퍼티를 의미하고, 계산된 프로퍼티 : 값을 저장하지 않고, 특정하게 계산한 값을 반환해주는 프로퍼티입니다. 계산된 프로퍼티는 클래스, 구조체, 열거형에서 사용 가능하지만 저장 프로퍼티는 클래스와 구조체에서만 사용 가능합니다. 저장 프로퍼티 (Stored Properties) 저장 프로퍼티는 일반적인 변수와 같습니다. 상수는 let 키워드를 사용하고, 변수는 var 키워드를 사용해 사용합니다. struct Number{ var one: Int var two: I..
-
열거형 (Enumerations)Swift 2020. 11. 5. 00:03
/* The Swift Language Guide (한국어)를 공부합니다. */ 열거형은 같은 특징을 가지는 값들을 하나의 그룹으로 관리하기 위한 개념입니다. 열거형을 사용하면 type-safety를 보장할 수 있습니다. ( type-safety란, 하나의 enum 그룹의 요소 외에는 사용할 수 없도록 하는 것입니다.) Swift에서는 C와 반대로 case값이 string, character, integer, floating 값을 사용할 수 있습니다. 열거형은 1급 클래스 형이기 때문에 computed properties(계산된 프로퍼티)를 제공하거나, 초기 선언을 확장해 사용할 수 있습니다. 열거형 문법 (Enumeration Syntax) enum키워드를 사용합니다. enum CompassPoint ..