Language/Swift-Basic

Swift - 프로토콜

Jessi :D 2022. 3. 2. 06:39

약속

보통 delegate 패턴의 경우에는 **delegate,

스위프트 언어자체에서는 **ing, **able 등으로 프로토콜의 이름을 정함 

 

프로토콜약속

프로토콜을 통해 맴버변수, 메소드 등을 꼭 구현하도록 강제

 

protocol Naming {
	// 우리는 이런 변수를 가지고 있을겁니다. 라고 약속
	var name : String { get set }
	
	// 우리는 이런 메소드를 가지고 있을겁니다. 라고 약속
	func getName() -> String
}

 

Nameing 프로토콜을 임플레먼트 했기 때문에

struct myName : Naming {
	
	// name 맴버 변수를 설정하지 않으면 에러
	var name: String
	
	// getName() 메소드 설정 안하면 에러
	func getName() -> String {
		return "나는 " + self.name
	}
}

var im = myName(name: "만쥬")
im.getName()
// 나는 만쥬
반응형