Re: [swift-users] [Feature Request] Extend the `defer` statement

2017-10-09 Thread Jun Zhang via swift-users
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 <geo...@gmail.com> 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 <swift-users@swift.org> 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 <spes...@apple.com> 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

2017-10-08 Thread Jun Zhang via swift-users
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 <spes...@apple.com> 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


[swift-users] [Feature Request] Extend the `defer` statement

2017-10-08 Thread Jun Zhang via swift-users
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


Re: [swift-users] Swift 3 Whole Module Optimization Issue

2016-12-23 Thread Jun Zhang via swift-users
This is the bug report: https://bugs.swift.org/browse/SR-3474

On Thu, Dec 22, 2016 at 11:08 AM, Jun Zhang 
wrote:

> Hi, everyone.
>I think I found a swift 3 whole module optimization issue. The code
> below, when building with release configuration and running on an iOS 10
> real device, will always causes a crash.
>
> import UIKit
>> class ViewController: UIViewController {
>> override func viewDidLoad() {
>> super.viewDidLoad()
>> // Do any additional setup after loading the view.
>> super.viewDidLoad()
>>
>> let orderby = "time"
>> let url = "http://www.sample.com/api/index.php?\(orderby)"
>>
>> Log("Request url: \(url)")
>>
>> if let url = URL(string: url) {
>> let request = URLRequest(url: url)
>> print(request)
>> }
>> }
>> override func didReceiveMemoryWarning() {
>> super.didReceiveMemoryWarning()
>> // Dispose of any resources that can be recreated.
>> }
>>
>> }
>> func Log(_ log: String) {
>> //NSLog("%@", log)
>> }
>
>
> You can see the attachment for more detail info.
> Or if you use github, this is the repo:
> https://github.com/zaczh/Swift3ClosureDemo​
>  Swift3ClosureDemo-master.zip
> 
> ​
>
___
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users