Language/Swift-Basic

Swift - typealias

Jessi :D 2022. 3. 4. 02:49

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
반응형