title: Swift protocol default values are not changable
body: <p>I have such a protocol properties with default values. But with the current implementation if I create an instance of <code>AssetViewAttributes</code> with some other values for <code>avgPrice</code>, <code>precision</code> they still have the default values. How can I change them?</p>
  <pre><code>struct Crypto: AssetViewAttribures {
      let name: String
      let logo: URL
      let symbol: String
      let avgPrice: String
      let precision: Int
  }
  
  struct Commodity: AssetViewAttribures {
      let name: String
      let logo: URL
      let symbol: String
      let avgPrice: String
      let precision: Int
  }
  
  struct Fiat: AssetViewAttribures {
      let name: String
      let logo: URL
      let symbol: String
  }
  
  protocol AssetViewAttribures {
      var name: String { get }
      var logo: URL { get }
      var symbol: String { get }
  }
  
  extension AssetViewAttribures {
      var avgPrice: String { get { return &quot;&quot; } set {} }
      var precision: Int { get{ return 0 } set{} }
  }
  
  var type1: AssetViewAttribures = Crypto(name: &quot;name&quot;, logo: URL(string: &quot;https://pixabay.com/de/illustrations/online-maus-web-internet-weltweit-523234/&quot;)!, symbol: &quot;symbol&quot;, avgPrice: &quot;123&quot;, precision: 2)
  
  type1.avgPrice // &quot;&quot; instead of &quot;123&quot;
  </code></pre>