در زبان برنامهنویسی Swift، پروتکلها (Protocols) به شما امکان میدهند یک مجموعه از الزامات و عملکردها را برای نوعها (Types) مشخص کنید. این الزامات و عملکردها میتوانند تعیین کنندهی نحوهی عملکرد یک Type باشند و به شما اجازه میدهند تا رابطهای مشترک بین نوعها را تعریف کنید.
اگر با زبان های برنامه نویسی دیگری مانند زبان های دات نت آشنایی دارید در واقع همان اینترفیس ها هستند.
یک پروتکل تنها شامل بر تعیین متدها، پراپرتی ها و دیگر اعضای مورد نیاز است و برای پیادهسازی نمیتواند مقدار پیشفرضی ارائه کند. از این رو، پروتکل به تنهایی نمیتواند نمونهای از خود باشد.
در ادامه، یک مثال ساده از تعریف و پیادهسازی یک پروتکل در Swift آورده شده است:
در این مثال، پروتکل `Animal` تعریف شده است. این پروتکل دارای دو الزام است: یک ویژگی `name` که نام حیوان را نگه میدارد و یک متد `makeSound` که صدای حیوان را تولید میکند. سپس، پروتکل `Animal` در دو نوع، یعنی کلاس `Cat` و ساختار `Dog` پیادهسازی شده است. در هر کلاس یا ساختار، این الزامات را باید برآورده کنید.
سپس، با ساختن یک نمونه از کلاس `Cat` و ساختار `Dog`، میتوانیم متدهای `makeSound` را صدا بزنیم و خروجی مورد انتظار را دریافت کنیم.