typealias 별칭을 통해 프로토콜 별명 설정 가능
protocol Naming {
func getName() -> String
}
protocol Aging {
func getAge() -> Int
}
별명설정
typealias Friendable = Naming & Aging
struct Friend : Friendable {
var name : String
var age : Int
func getName() -> String {
return self.name
}
func getAge() -> Int {
return self.age
}
}
클로저
// 클로저를 StringBlock 이라는 별명으로 설정
typealias StringBlock = (String) -> Void
//func sayHi(completion : (String) -> Void) {
func sayHi(completion : StringBlock) {
print("안녕하세요?")
completion("오늘도 빡코딩 하고 계신가요??")
}
sayHi(completion: { saying in
print("여기서 받음 : \(saying)")
//안녕하세요?
//여기서 받음 : 오늘도 빡코딩 하고 계신가요??
})
별명설정 예제
자료형, 클래스, 스트럭트, 클로저 등 모두 별명설정이 가능
typealias FriendName = String
var friendName : String = "만쥬"
친구 배열을 별명으로 설정
typealias Friends = [Friend]
var myFriendArray : Friends = []
다른예제
typealias MyType = MyClass.MY_TYPE
class MyClass {
enum MY_TYPE {
case DOG
case CAT
case BIRD
}
var myType = MY_TYPE.DOG
}
var myClass = MyClass()
myClass.myType = MyType.DOG
print("myClass.myType : \(myClass.myType)")
//myClass.myType : DOG
반응형