I think you can achieve what you want by having the ‘defer’ block capture a mutable local variable. Eg,
func doStuff() { var success = false defer { if !success { // do some additional cleanup } } … success = true … return result } > On Oct 8, 2017, at 7:34 PM, Jun Zhang via swift-users <swift-users@swift.org> > wrote: > > Hi dear swift developers, > I am kind of new to swift and I don't know if this feature already exists. > And if it exists already please tell me how. Thank you very much! > The feature is to capturing the return value (maybe input value also) of > the function. Here is the demo code: > > func tableView(_ tableView: UITableView, numberOfRowsInSection section: > Int) -> Int { > defer { > if $> >= 0 { > // table is not empty > } > else { > // table is empty > } > } > return dataSource.cout > } > > I suggest using `$>` as the return value symbol and `$<` as the input > parameter symbol. > Thank you all and best regards to you! > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users