How To Declare Optional Parameter Function

I have a function like this

@ViewBuilder
  func addInfo(_ text: String, action: (() -> Void)?, addDivider: Bool = true, centerAlignment: Bool = false, isBold: Bool = false) -> some View {
    VStack {
      Text(text)
        .fontWeight(isBold ? .bold : .regular)
        .frame(maxWidth: .infinity, alignment: centerAlignment ? .center : .leading)
        .padding([.leading, .trailing], 10)
        .padding([.top, .bottom], 5)        
        .contentShape(Rectangle())
        .onTapGesture {
          if let action {
            action()
          }
        }
      if addDivider {
        Divider()
      }
    }
  }

I do not understand why i get a compile error

Expected type after '->'

if i call the function like this

addInfo("Sample", action: () -> Void {
           
})

The error points to Void. What is the correct way to do this? Please advise.

  • Sure, when you call a func, you must not repeat the return type.

Add a Comment

Accepted Reply

Baaah.. managed to solve it

addInfo("Sample", action: () {
           
})

Replies

Baaah.. managed to solve it

addInfo("Sample", action: () {
           
})