728x90 반응형 공부88 [스위프트] final 메서드와 static 메서드 이전에 타입 메서드와 인스턴스 메서드의 비교를 해봤다.2024.01.03 - [공부/스위프트] - [스위프트] 인스턴스 메서드와 타입 메서드근데 타입 메서드에 대해서 생각하다 보면 이런 생각이 든다. "final class func와 static func와 똑같이 작동하지 않나?" 실제로 그렇다. 똑같이 작동한다. 적어도 내가 해봤던 테스트상으로는 그랬다. 하지만 실제로는 다른경우에 쓴다.근데 막 찾아봐도 정확히 어떨 때 쓴다는 말이 명확한 느낌으로 없다.내가 내린 결론은 단어에서 주는 뉘앙스 차이로 인해서 그렇다고 본다. final먼저 final 메서드는 타입 메서드로 쓸 때 "final 메서드명" 이런식으로 쓴다.이는 앞에서 static 타입 메서드 얘기할 때 말했듯이 오버라이딩이 안 된다.메서드 오.. 2024. 1. 4. [스위프트] 인스턴스 메서드와 타입 메서드 스위프트의 메서드에는 인스턴스 메서드와 타입 메서드 두 가지 종류가 있다. 이번에는 인스턴스 메서드와 타입 메서드, 이 두가지의 차이점에 대해 알아보자. 인스턴스 메서드 인스턴스 메서드란 우리가 흔히 쓰는 메서드이다. 왜 인스턴스 메서드냐면 인스턴스화 했을때 쓸 수 있는 메서드라 인스턴스 메서드다. 타입 메서드 타입 메서드란 흔히 static을 접두어로 붙이고 선언한 메서드를 말한다. (마찬가지로 static을 붙인 프로퍼티는 타입 프로퍼티가 된다.) 이는 클래스나 구조체가 타입으로 선언되니까 호출 시에 "클래스(구조체) 명. 메서드명" 이렇게 호출할 수 있어서 타입메서드이다.(프로퍼티도 똑같다.) 하지만 중요한 건 타입메서드에는 두 가지가 있다. static 메서드 class 메서드 static 메서드.. 2024. 1. 3. [CS] 인스턴스화란 무엇일까?(클래스, 객체, 인스턴스) 이번시간에는 "인스턴스화"에 대해서 알아보려고 한다. 아마 다들 여기저기서 수업을 듣거나 강좌를 볼때 인스턴스화한다 라는 말은 들어봤을 것이다. 근데 정확한 뜻은 모르고 그냥 느낌상 어떻다 라고만 알수있는데 이번에 확실히 알아보자. 인스턴스화란 객체지향에서 나오는 단어인데 주로 붕어빵틀과 붕어빵으로 얘기가 돌아다니는것을 확인할 수 있다. 하지만 이는 좀 부정확한 비유라는게 최근에 나오고 있다. 나도 동의한다. 그래서 나는 이왕 붕어빵틀로 얘기를 했으니까 붕어빵틀에서 크게 벗어나지 않으려 한다. 그래서 붕어빵틀의 설계도와 붕어빵틀로 얘기를 하려고 한다. 클래스(Class)와 구조체(Struct) 우리가 클래스나 구조체(스위프트에서는 주로 구조체(Struct)를 기본적인 구조와 내부 작동방식(메소드)등으로 .. 2024. 1. 2. [스위프트] 복잡한 함수의 사용 스위프트에서 함수를 선언하고 쓰는 데에 정말 복잡한 경우가 있다. 바로 함수를 일급객체로 쓰는 경우다. 함수를 일급객체로 쓰면 변수 및 상수에 저장해 쓸 수 있다. // 이 함수의 타입은 (String, String) -> String 이다 func areYouKorean(name: String, food: String) -> String { return "\(name), 당신은 \(food)를 좋아하는 한국인입니다." } // 이 함수의 타입도 (String, String) -> String 이다 func areYouAmerican(name: String, food: String) -> String { return "\(name), 당신은 \(food)를 좋아하는 미국인입니다." } 일단 name과 r.. 2023. 12. 19. [스위프트] nil과 null 차이 스위프트에는 nil이 있습니다. 하지만 다른 언어에, 심지어 이전의 Objective-C에도 null이 있었습니다.(물론 obj-c에는 nil도 있었습니다.) 그렇다면 nil은 무엇이며 nil과 null의 차이는 무엇일까... 일단 기존의 obj-c에서 nil과 null들에 대해서 간단하게 살펴봅시다. NULL C pointer의 null nil Objective-C의 object들을 나타내는 null값 Nil Objective-C의 class들을 나타내는 null값 NSNull null을 표현하기 위한 싱글톤 오브젝트 뭐 그렇다고 합니다. 하지만 Swift에서는 위의 것들을 전부 없애버리고 nil만 남았다. Swift에서 nil은 값이 존재할지 안 할지 모르는 상태의, 아예 빈값("")도 없을 수 있는.. 2023. 12. 15. [스위프트] 옵셔널 바인딩 단축하기 원래 옵셔널 바인딩은 아래처럼 if let(var)문이나 guard let(var)문을 사용하여 할당하고 사용해야한다. var name: String? var age: Int? let isLoadingDone: Bool = false if isLoadingDone { name = "홍길동" age = 65 } if let name, let age { print("\(age)세 \(name)님 반갑습니다") } else { print("자료를 확인할 수 없습니다") } 하지만 아래처럼 사용할 수도 있다. // 다음과 같이 옵셔널 바인딩을 단축할 수 있다. let tempName: String = name ?? "알 수 없는 이름"// 기본값을 할당한다. let tempAge: Int = age ?? 0//.. 2023. 12. 14. 이전 1 ··· 4 5 6 7 8 9 10 ··· 15 다음 728x90 반응형