title: What is happening when a struct is being passed as a parameter?
body: <p>SwiftUI example:</p>
  <pre class="lang-swift prettyprint-override"><code>    @State private var numbers: [Int] = []
      @State private var currentNumber = 0
      
      var body: some View {
          NavigationView {
              VStack {
                  List {
                      ForEach(numbers, id: \.self) {
                          Text(&quot;\($0)&quot;)
                      }
                  .onDelete(perform: removeRows) // #1
                  }
                  
                  Button(&quot;Add Number&quot;) {
                      self.numbers.append(self.currentNumber)
                      self.currentNumber += 1
                  }
              }
          .navigationBarItems(leading: EditButton()) // #2
          }
      }
      
      func removeRows(at offsets: IndexSet) {
          numbers.remove(atOffsets: offsets)
      }
  </code></pre>
  <p>I understand when a function <code>removeRows</code> (#1 in the example) is passed as a parameter, that's a closure that's to be executed later.</p>
  <p>What is happening behind the scene when a struct like <code>EditButton()</code> (#2) is passed as a parameter? Is an instance being instantiated? A computed property being returned? A method being called?</p>