title: ?? operator in Swift
body: <p>In the "The Swift Programming Language" book (page 599), I came across this code snippet that kind of confused me. It went like this: </p>
  
  <pre><code>func buyFavoriteSnack(person:String) throws {
      let snackName = favoriteSnacks[person] ?? "Candy Bar"
      try vend(itemName:snackName)
  }
  </code></pre>
  
  <p>Its explanation was: </p>
  
  <blockquote>
    <p>The buyFavoriteSnack(_:) function looks up the given person's favorite snack and tries to buy it for them. If they don't have a favorite snack listed, it tries to buy a candy bar. If they...</p>
  </blockquote>
  
  <p>How can this explanation map to the "??" operator in the code given. When should/can we use this syntax in our own code? </p>