🍎 iOS/Swift

[Swift] Type Aliases(νƒ€μž… 별칭)

AHN.Jihyeon 2024. 11. 25. 02:10

 

 

 

 

πŸ”Ž  1 . TypeAliases (νƒ€μž… 별칭)


 

TypeAliasesλŠ” 이미 μ‘΄μž¬ν•˜λŠ” νƒ€μž…(클래슀, ꡬ쑰체, μ—΄κ±°ν˜•, ν•¨μˆ˜, νŠœν”Œ λ“±)을 λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ μ •μ˜ν•œλ‹€

이λ₯Ό 톡해 μ½”λ“œμ˜ 가독성을 높이고, νŠΉμ • νƒ€μž…μ˜ 의미λ₯Ό λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆλ‹€.

typealias ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ •μ˜ν•œλ‹€. 

 

 

 

πŸ”Ž  2. κΈ°λ³Έ 문법


 

 

 

 

πŸ”Ž  3. μ‚¬μš© μ˜ˆμ‹œ


1. 가독성 ν–₯상

μ½”λ“œμ—μ„œ νƒ€μž…μ˜ 이름이 κΈΈκ±°λ‚˜ λ³΅μž‘ν•  λ•Œ 

    typealias Point = (x: Int, y: Int)
    
    let orign: Point = (x: 0, y: 0)

 

 

2. λ³΅μž‘ν•œ νƒ€μž… λ‹¨μˆœν™”

μ œλ„€λ¦­ νƒ€μž…μ΄λ‚˜ ν•¨μˆ˜ νƒ€μž…κ³Ό 같이 λ³΅μž‘ν•œ νƒ€μž…μ„ κ°„λ‹¨ν•œ μ΄λ¦„μœΌλ‘œ μ •μ˜ν•˜μ—¬ κ°„λ‹¨ν•˜κ²Œ μ‚¬μš©

typealias StringDictionary = [String: String]
typealias CompletionHandler = (Bool, Error?) -> Void

func fetchData(completion: CompletionHandler) {
    // ...
}

 

 

3. νŠΉμ • μ‚¬μš© λͺ©μ μ— 따라 의미 λΆ€μ—¬

νŠΉμ • νƒ€μž…μ— λŒ€ν•΄ μ‚¬μš© λͺ©μ μ„ λͺ…ν™•ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄ μ‚¬μš©

    typealias Meter = Double
    typealias Kilogram = Double
    
    let distance: Meter = 120.5
    let weight: Kilogram = 70.3

 

 

4. μ œλ„€λ¦­ νƒ€μž… μΆ•μ•½

μ œλ„€λ¦­μ„ μ‚¬μš©ν•˜λŠ” νƒ€μž…μ— λŒ€ν•΄ 더 짧은 μ΄λ¦„μœΌλ‘œ λ§Œλ“€ 수 있음

typealias StringResult = Result<String, Error>
        
func perforTask() -> StringResult {
	return .success("성곡!!")
}



typealias JSON = [String: Any]
typealias NetworkCompletion = (JSON?, Error?) -> Void

func fetchAPI(endpoint: String, completion: NetworkCompletion) {
    // API 호좜 처리
}