250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- forEach
- 학과별커뮤니티
- 반응형
- 스트럭트
- 세종대학교
- SwiftUI
- ios
- 디자인 패턴
- uikit
- 프로토콜
- 구름톤 유니브
- 대표
- struct
- mvc
- CS
- async
- swift
- WeatherKit
- MVVM
- 기초문법
- 토이프로젝트
- AppStore
- 딕셔너리
- 앱개발
- RxSwift
- 이론
- 실습
- collectionview
- 네트워크
- 협업
Archives
- Today
- Total
스윞한 개발자
Swift 기초 문법 - dictionary grouping/Convenience init 본문
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
'Swift 이론' 카테고리의 다른 글
Swift 기초 문법 - reduce/Equatable/Zip/Range/open (0) | 2024.01.29 |
---|---|
Swift 기초 문법 - 콜렉션 합치기/콜렉션간 변형 (0) | 2024.01.29 |
IOS AVFoundation (0) | 2024.01.27 |
Swift 기초 문법 - 디자인패턴 빌더패턴 (0) | 2024.01.27 |
Swift 기초 문법 - 멀티트레일링 클로져 (0) | 2024.01.26 |