일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Protocol
- Xcode
- addannotation
- 단일 책임원칙
- WeatherManager
- xcode로 날씨앱 만들기
- Required Reason API
- 서체관리자
- Startign Assignments
- MKMapItem
- SwiftUI Boolean 값
- Timer
- font book
- App Store Connect
- swift
- AnyObject
- RunningTimer
- CLLocationManagerDelegate
- dispatchsource
- weatherKit
- CoreLocation
- MKMapViewDelegate
- 러닝기록앱
- 영문 개인정보처리방침
- 클로저의 캡슐화
- UIAlertAction
- UICollectionViewFlowLayout
- 한국어 개인정보처리방침
- weak var
- 러닝타이머
Archives
- Today
- Total
VesselWheel
Pattern Matching 연산자 overloading 본문
import UIKit
// Expression Pattern
let num = 11
switch num{
// interval matching
// ... : 범위 연산자
case 0...10:
print("0 ~ 10")
default:
break
}
// Pattern Matching Operator
struct Size{
var width = 0.0
var height = 0.0
// Pattern Matching 연산자 overloading하기
// parameter 의 자료형과 순서를 맞추어 줌
static func ~=(left: Range<Int>, right:Size) -> Bool{
// 1..<9 ~= size1:
return left.contains(Int(right.width))
}
}
let size1 = Size(width:10, height: 20)
switch size1{
// 구조체는 interval mathing 을 할 수 없음
// Pattern Matching 연산자 overloading 해야 함
case 1..<9:
print("1 ~ 8")
// 구조체는 interval mathing 을 할 수 없음
// Pattern Matching 연산자 overloading 해야 함
case 10..<99:
print("10 ~ 98")
default:
break
}
'Xcode Study' 카테고리의 다른 글
반복문(for in) 활용 구구단 만들기 (0) | 2023.05.02 |
---|---|
반복문 for 변수 in 범...위{} (0) | 2023.05.02 |
변수 간 연결(Value binding pattern) (0) | 2023.05.02 |
Guard 문의 개념 (0) | 2023.04.30 |
[SwiftUI] Allow Arbitrary Loads, 외부 URL 허용 (0) | 2023.04.29 |