Junior — Middle
Comment déterminer si une classe implémente un protocole donné dans un langage de programmation?
sobes.tech IA
Réponse de l'IA
В языке Swift для проверки, реализует ли класс заданный протокол, используется оператор is или as?. Например:
protocol MyProtocol {
func doSomething()
}
class MyClass: MyProtocol {
func doSomething() {
print("Doing something")
}
}
let obj = MyClass()
if obj is MyProtocol {
print("Объект реализует MyProtocol")
}
// Или с приведением типа
if let protoObj = obj as? MyProtocol {
protoObj.doSomething()
}
В Objective-C можно использовать метод conformsToProtocol::
if ([myObject conformsToProtocol:@protocol(MyProtocol)]) {
// Класс реализует протокол
}
Таким образом, для определения реализации протокола используется проверка типа с помощью встроенных операторов или методов.