박교수의 Swift강좌10-열거형과 구조체, 클래스에 대하여 이론적인 설명과 예제 프로그램을 통해 살펴보도록 하겠습니다. Swift의 열거형은 튜플값을 멤버로 가질 수 있으므로 C/C++보다 풍부하고 강력한 기능이 가능합니다. 또한 클래스와 구조체 모두 메소드를 가질 수 있다는 점이 C++와는 다른 점입니다.
Youtube
- https://www.youtube.com/watch?v=TykLyvMsGho
이번 Swift 강좌에서는 값타입과 참조타입에 대하여 알아봅니다. Swift에서는 구조체와 클래스, 열거형은 모두 속성(프로퍼티)과 메소드를 가질수 있습니다. 이런 점에서 구조체와 클래스는 매우 유사합니다
그러나 구조체는 값타입이며 클래스는 참조타입으로 구조체는 간단한 데이터 값들을 한데 묶어서 사용하는 경우 다루기가 좋습니다.
반면 값타입이므로 복사시에 구조체 변수들은 원본 구조체의 값이 복사되어 별도의 메모리에 유지됩니다.
Youtube
- https://youtu.be/EtkltOwzfco
이 강좌에서는 Swift의 제너릭에 대해 알아봅니다.
제네릭 코드는 데이터 타입보다는 알고리즘에 코드를 집중할 수 있도록 하는 문법이며, 이를 통해 프로그램을 유연하게 작성할 수 있고, 재사용가능한 함수를 만들 수 있다.
Youtube
- https://youtu.be/x9k9EcokVMA
박교수의 Swift강좌10-열거형과 구조체, 클래스에 대하여 이론적인 설명과 예제 프로그램을 통해 살펴보도록 하겠습니다. Swift의 열거형은 튜플값을 멤버로 가질 수 있으므로 C/C++보다 풍부하고 강력한 기능이 가능합니다. 또한 클래스와 구조체 모두 메소드를 가질 수 있다는 점이 C++와는 다른 점입니다.
Youtube
- https://www.youtube.com/watch?v=TykLyvMsGho
이번 Swift 강좌에서는 값타입과 참조타입에 대하여 알아봅니다. Swift에서는 구조체와 클래스, 열거형은 모두 속성(프로퍼티)과 메소드를 가질수 있습니다. 이런 점에서 구조체와 클래스는 매우 유사합니다
그러나 구조체는 값타입이며 클래스는 참조타입으로 구조체는 간단한 데이터 값들을 한데 묶어서 사용하는 경우 다루기가 좋습니다.
반면 값타입이므로 복사시에 구조체 변수들은 원본 구조체의 값이 복사되어 별도의 메모리에 유지됩니다.
Youtube
- https://youtu.be/EtkltOwzfco
이 강좌에서는 Swift의 제너릭에 대해 알아봅니다.
제네릭 코드는 데이터 타입보다는 알고리즘에 코드를 집중할 수 있도록 하는 문법이며, 이를 통해 프로그램을 유연하게 작성할 수 있고, 재사용가능한 함수를 만들 수 있다.
Youtube
- https://youtu.be/x9k9EcokVMA
2. 제네릭 타입을 쓰는 이유?
• 컴파일 타임 때의 타입 체크
• 캐스팅 감소
• 제네릭 알고리즘 사용 (?)
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);
List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0); // no cast
3. 제네릭화–제네릭 타입을 사용도록 개선
1. 클래스 선언부에 타입 매개변수 추가
2. 클래스의 모든 Object타입을 타입 매개변수로 변경
3. 제네릭 배열 생성 에러
1. Object 배열 생성 후 캐스팅
2. 원소의 타입을 제네릭 타입에서 Object로 바꿈
4. 제네릭화–제네릭 타입을 사용도록 개선
• 기본형을 저장하는 제네릭 컬렉션은 생성불가
– 기본형에 대응하는 박스형 기본형을 사용
• 허용 가능 값을 제한하는 제네릭-bounded type
parameter
5. 요약
• 클라이언트 코드에서 캐스팅을 해야 하는 타입보다 제네
릭 타입이 더 안전하고 쓰기 쉽다.
• 새로운 타입을 설계할 때는 그런 캐스팅 없이 사용가능한
지 확인하자.
• 시간이 닿는 대로 기존 타입을 제네릭화 하자.