title: Declare protocol function with default argument values
body: <p>I want this function be in protocol:</p>
  <pre><code>func slideToRight(currentViewController viewController: UIViewController, completion: ((Bool)-&gt;())? = nil) {
      // do some stuff
  }
  </code></pre>
  <p>But when I write such protocol:</p>
  <pre><code>protocol SomeDelegate { 
      func slideToRight(currentViewController viewController: UIViewController, completion: ((Bool)-&gt;())? = nil) 
  }
  </code></pre>
  <p>I got an error:</p>
  <blockquote>
  <p>Default argument not permitted in a protocol method</p>
  </blockquote>
  <p>I know, I can define the signature in this way:</p>
  <pre><code>protocol SomeDelegate { 
      func slideToRight(currentViewController viewController: UIViewController, completion: ((Bool)-&gt;())?) 
  }
  </code></pre>
  <p>But then, I won't be able to call the function missing &quot;completion&quot; word:</p>
  <pre><code>slideToRight(currentViewController viewController: vc)
  </code></pre>