목록Swift/스위프트 프로그래밍 (35)
study record
*이 글은 책 “스위프트 프로그래밍”을 읽고 작성된 글입니다. 제네릭은 스위프트의 강력한 기능 중 하나이다. 제네릭을 이용해 코드를 구현하면 어떤 타입에도 유연하게 대응할 수 있다. 또한 제네릭으로 구현한 기능과 타입은 재사용하기도 쉽고, 코드의 중복을 줄일 수 이씨에 깔끔하고 추상적인 표현이 가능하다. 제네릭을 사용하고자 할 때는 제네릭이 필요한 타입 또는 메서드의 이름 뒤의 홀화살괄호 기능( ) 사이에 제네릭을 위한 타입 매개변수를 써 제네릭을 사용할 것임을 표시한다. 제네릭 함수 func swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA: T = a a = b b = temporaryA } 제네릭함수는 실제 타입 이름을 써주는 대신에 플레이스 ..
*이 글은 책 “스위프트 프로그래밍”을 학습하고 작성한 글입니다. 익스텐션이란 익스텐션은 스위프트의 강력한 기능 중 하나로 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있다. 기능을 추가하려는 타입을 구현한 소스코드를 알지 못 하거나 볼 수 없다 해도 타입만 안다면 그 타입의 기능을 확장할 수 있다. 스위프트의 익스텐션이 타입에 추가할 수 있는 기능 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티 타입 메서드 / 인스턴스 메서드 이니셜라이저 서브스크립트 중첩 타입 특정 프로토콜을 준수할 수 있도록 기능 추가 익스텐션은 타입에 새로운 기능을 추가할 수는 있지만 기존에 존재하는 기능을 재정의할 수는 없다. 클래스의 상속은 클래스 타입에서만 가능하지만 익스텐션은 구조체, 클래스, 프로토콜..
*이 글은 책 ‘스위프트 프로그래밍’을 학습하고 작성한 글입니다. 프로토콜이란 프로토콜은 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의한다. 구조체, 클래스, 열거형은 프로토콜을 채택해서 특정 기능을 실행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있다. 어떤 프로토콜의 요구사항을 모두 따르는 타입은 해당 프로토콜을 준수한다고 표현한다. 타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야 한다. 즉, 프로토콜은 정의를 하고 제시를 할 뿐이지 스스로 기능을 구현하지는 않는다. 프로토콜 채택 프로토콜은 구조체, 클래스, 열거형의 모양과 비슷하게 정의할 수 있으며 protocol 키워드를 사용한다. 구조체, 클래스, 열거형 등에서 프..
*책 “스위프트 프로그래밍”을 학습하고 작성한 글입니다. 스위프트는 데이터 타입 안전을 위하여 각기 다른 타입끼리의 값 교환을 엄격히 제한한다. 기존 언어의 타입 변환과 스위프트의 타입 변환 // 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 //오류 스위프트 타입캐스팅 스위프트의 타입캐스팅은 인스턴스의 타입을 확인하거나 자신을 다른 타입의 인스턴스인양 행세할 수 있는 방법으로 사용할 수 있다...