Type alias
Updated:
🔷 Type alias
protocol Naming {
func getName() -> String
}
protocol Aging {
func getAge() -> Int
}
// typealias 별칭을 통해 프로토콜 별명 설정이 가능
typealias Firendable = Naming & Aging
struct Friend: Firendable {
var name: String
var age: Int
func getName() -> String {
return self.name
}
func getAge() -> Int {
return self.age
}
}
// 자료형, 클래스, 스트럭트, 클로저 등
// 모든곳에 type alias 가 가능
typealias FriendName = String
var friendName : FriendName = "Jacob"
// 친구 배령을 alias 로 설정
typealias Friends = [Friend]
var myFriendsArray = Friends()
// 클러저를 StringBlock 이라는 별명으로 설정하였다
typealias StringBlock = (String) -> Void
func sayHI(completion: StringBlock) {
print("안녕하세요~~") // 안녕하세요~
completion("오늘 점심은 뭐 먹어요?")
}
sayHI(completion: {result in
print("내가 할말은? : ", result) // 내가 할말은? : 오늘 점심은 뭐 먹어요?
})
🔶 Type alias class 에서 사용하기
typealias MyTpe = MyClass.My_Type
class MyClass {
enum My_Type {
case DOG
case CAT
case BIRD
}
var myType = My_Type.DOG
}
var myClass = MyClass()
myClass.myType = MyTpe.DOG
print("myClass.myType: ", myClass.myType) // myClass.myType: DOG
Reference
꼼꼼한 재은 씨의 스위프트 문법편 - https://book.jacobko.info/#/book/1186710233
개발하는 정대리 스위프트 기초 문법 - 25일차 / typealias - https://www.youtube.com/watch?v=8nPQKGrpbmY&list=PLgOlaPUIbynoqbQw_erl3L2w7vfOTCtFD&index=25
Leave a comment