Re: [swift-users] [Feature Request] Extend the `defer` statement
Hi Jay, I'm wrong and please ignore the "Input parameter" because I can already get them within the defer statement body. Since we have a `newValue` keyword in `didSet` statement, I think a `returnValue` keyword will be fine. On Mon, Oct 9, 2017 at 4:49 PM, Geordie Jay wrote: > This feature request is probably one for swift evolution. > > I like the idea in theory, but I’d prefer to see the return value > identifier being spelled out, i.e. “returnValue” instead of the symbols. > > Jun Zhang via swift-users schrieb am Mo. 9. Okt. > 2017 um 05:37: > >> Yes that's true, but this requires me to set a return value in every >> `early return` statement. I think this should be done by the compiler >> instead of me, to make code cleaner and also less error-prone. >> >> On Mon, Oct 9, 2017 at 11:24 AM, Slava Pestov wrote: >> >>> 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. >>> >>> > Also, I’m not sure what “input parameter” means here. > > Geordie > > >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 >> > ___ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users
Re: [swift-users] [Feature Request] Extend the `defer` statement
This feature request is probably one for swift evolution. I like the idea in theory, but I’d prefer to see the return value identifier being spelled out, i.e. “returnValue” instead of the symbols. Jun Zhang via swift-users schrieb am Mo. 9. Okt. 2017 um 05:37: > Yes that's true, but this requires me to set a return value in every > `early return` statement. I think this should be done by the compiler > instead of me, to make code cleaner and also less error-prone. > > On Mon, Oct 9, 2017 at 11:24 AM, Slava Pestov wrote: > >> 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. >> >> Also, I’m not sure what “input parameter” means here. Geordie 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 > ___ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users
Re: [swift-users] [Feature Request] Extend the `defer` statement
Yes that's true, but this requires me to set a return value in every `early return` statement. I think this should be done by the compiler instead of me, to make code cleaner and also less error-prone. On Mon, Oct 9, 2017 at 11:24 AM, Slava Pestov wrote: > 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
Re: [swift-users] [Feature Request] Extend the `defer` statement
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 > 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
[swift-users] [Feature Request] Extend the `defer` statement
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