250x250
반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

스윞한 개발자

Swift 기초 문법 - dictionary grouping/Convenience init 본문

Swift 이론

Swift 기초 문법 - dictionary grouping/Convenience init

스윞남 2024. 1. 29. 00:33
728x90
반응형
SMALL

이번 포스팅에서는 간단한 여러 Swift 기초 문법에 대해 정리해보겠습니다!

 

 

Dictionary grouping

스위프트에서 딕셔너리 grouping 기능은 컬렉션 내의 항목을 특정 기준으로 그룹화하는 데 사용됩니다!

딕셔너리 grouping 함수는 새로운 딕셔너리를 생성하며, 각 그룹의 키는 지정된 기준에 따라 생성됩니다.

 

let values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let groupedByEvenOdd = Dictionary(grouping: values, by: { $0 % 2 == 0 })
print(groupedByEvenOdd)

배열의 요소를 짝수와 홀수로 그룹화하여 새로운 딕셔너리를 생성합니다.
결과

[false: [1, 3, 5, 7, 9], true: [2, 4, 6, 8, 10]]

 

그룹화 함수에 사용되는 클로저는 각 항목을 그룹화할 키로 변환하는 데 사용됩니다.

 

let names = ["Alice", "Bob", "Charlie", "David", "Eve", "Frank"]
let groupedByLength = Dictionary(grouping: names, by: { $0.count })
print(groupedByLength)

위의 코드는 문자열 배열의 문자 길이에 따라 그룹화하여 새로운 딕셔너리를 생성합니다.
결과

[5: ["Alice", "David"], 3: ["Bob", "Eve"], 7: ["Charlie", "Frank"]]

참고(출처) : 개발하는 정대리, 야곰(Swift5)

 

Convenience init

스위프트에서 convenience init(= 추가생성자)은 초기화 과정을 더 편리하게 만들기 위해 사용되는 특별한 형태의 이니셜라이저입니다.

convenience init을 사용하여 다른 이니셜라이저를 호출하거나 기존의 이니셜라이저를 더 간결하게 구현할 수 있습니다.

기본적으로 convenience init은 동일한 클래스 내에서 다른 이니셜라이저를 호출하는 용도로 사용됩니다.

convenience init의 특징

1. convenience init은 반드시 같은 클래스 내에서 정의되어야 합니다.

2. convenience init은 다른 이니셜라이저를 호출해야 하며, 그렇지 않으면 에러가 발생합니다.

3. convenience init은 보조적인 역할을 하므로, 모든 속성을 초기화할 필요는 없습니다.

class Person {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    convenience init(name: String) {
        self.init(name: name, age: 0)  // 다른 이니셜라이저 호출
    }}
// 사용 예시
let person1 = Person(name: "Alice", age: 25)
let person2 = Person(name: "Bob")  // convenience init 사용

참고(출처) : 개발하는 정대리, 야곰(Swift5)

728x90
반응형
LIST