⌨️ Language/swift248 [Swift] 제네릭 제네릭(Generics)유연하고 재사용 가능한 함수와 타입의 코드를 작성하는 것을 가능하게 함인자값의 타입만 다르고 동일한 기능을 수행하는 함수를 하나로 만들 수 있음 제네릭 함수(Generic Functions)함수명 뒤에 타입 이름 placeholder인 T를 선언하고 a,b 파라미터를 T로 선언func swapTwoValues(_ a: inout T, _ b: inout T) { let temporaryA = a a = b b = temporaryA}var someInt = 3var anotherInt = 107swapTwoValues(&someInt, &anotherInt)// someInt is now 107, and anotherInt is now 3var someString .. 2024. 4. 2. [Swift] 프로토콜 프로토콜(Protocols)어떤 기능에 필요한 요구사항을 선언해두는 것클래스, 구조체, 열거형에 의해 채택프로토콜 문법protocol SomeProtocol {// protocol definition}프로토콜을 따르는 타입을 정의하기 위해서는 타입 이름 뒤에 콜론(:)을 붙이고 프로토콜 이름을 적음프로토콜을 채택할 때는 프로토콜에 정의된 요구사항을 반드시 구현 해야만 함 struct SomeStructure: FirstProtocol, AnotherProtocol { // structure definition goes here}class SomeClass: SomeSuperclass, FirstProtocol, AnotherProtocol { // class definition goes her.. 2024. 3. 29. [Swift] 에러 처리 에러의 표시와 발생enum VendingMachineError: Error { case invalidSelection case insufficientFunds(coinsNeeded: Int) case outOfStock}throw VendingMachineError.insufficientFunds(coinsNeeded: 5) 에러 처리에러가 발생한 함수에서 리턴값으로 에러를 반환해 해당 함수를 호출한 코드에서 에러를 처리하도록 하는 방법do-catch 구문을 사용하는 방법옵셔널 값을 반환하는 방법assert를 사용해 강제로 크래쉬를 발생시키는 방법에러를 발생시키는 함수 사용하기어떤 함수, 메소드 혹은 생성자가 에러를 발생시킬 수 있다는 것을 알리기 위해 throw 키워드를 함수 선언.. 2024. 3. 28. [Swift] 옵셔널 체이닝 옵셔널 체이닝nil일 수도 있는 프로퍼티나, 메소드 그리고 서브스크립트에 질의(query)를 하는 과정만약 옵셔널이 프로퍼티나 메소드 혹은 서브스크립트에 대한 값을 갖고 있다면 그 값을 반환함만약 값이 nil이라면 nil 반환 강제 언래핑의 대체로써의 옵셔널 체이닝옵셔널 값 뒤에 물음표(?)를 붙여서 표현 가능옵셔널을 사용할 수 있는 값에는 프로퍼티, 메소드 그리고 서비스크립트가 포함옵셔널 값을 강제 언래핑하기 위해 뒤에 느낌표(!)를 붙이는 것과 유사강제 언래핑을 했는데 만약 그 값이 없으면 런타임 에러 발생옵셔널 체이닝을 사용하면 런타임 에러 대신 nil이 반환class Person { var residence: Residence?}class Residence { var numberOfRo.. 2024. 3. 26. [Swift] 초기화 초기화 (Initialization)클래스, 구조체, 열거형 인스턴스를 사용하기 위해 준비 작업을 하는 단계각 저장 프로퍼티의 초기 값을 설정 →initializer를 정의 하는 것으로 구현 저장 프로퍼티를 위한 초기값 설정인스턴스의 저장 프로퍼티는 사용하기 전 반드시 특정 값으로 초기화 돼야 함 (기본 값으로 설정/특정 값으로 설정 가능)NOTEinitializer에서 저장 프로퍼티에 값을 직접 설정하면 프로퍼티 옵저버가 호출되지 않고 값 할당이 수행 이니셜라이저특정 타입의 인스턴스 생성 (이니셜라이저의 가장 간단한 형태_ 파라미터 없이 init 키워드 사용)init() {// perform some initialization here}기본 프로퍼티프로퍼티 선언과 동시에 값을 할당, 이 값을 초기 값으.. 2024. 3. 25. [Swift] 상속 상속(Inheritance)클래스에서 다른 클래스로 부터 상속할 수 있음클래스에서 저장 프로퍼티, 계산 프로퍼티 상관없이 상속 받은 프로퍼티에 프로퍼티 옵저버를 사용해 값 설정에 반응할 수 있음기반클래스다른 어떤 클래스로부터 상속받지 않은 클래스 SomeSuperclass서브클래싱부모로 부터 성격을 상속받고 자신 고유의 특성도 추가할 수 있음class SomeSubclass: SomeSuperclass { // subclass definition goes here}서브클래싱은 계속할 수 있음 오버라이딩 (Overriding)서브클래스에서 부모클래스에서 상속받은 것을 재정의인스턴스, 메소드, 타입 메소드, 인스턴스 프로퍼티, 타입 프로퍼티, 서브스크립트 모두 가능다른 선언 앞에 override키워드 붙여 .. 2024. 3. 22. 이전 1 2 3 4 5 ··· 42 다음 반응형