[swift-evolution] Make non-void functions @warn_unused_result	by default
    Dmitri Gribenko 
    gribozavr at gmail.com
       
    Wed Mar  2 15:25:57 CST 2016
    
    
  
On Wed, Mar 2, 2016 at 1:21 PM, David Owens II <david at owensd.io> wrote:
> Swift's error handling model is optional -> throws -> runtime error. Returning a result is perfectly acceptable as a return value.
But then the result is a critical part of the function operation, and
obviously can't be discarded, for the same reasons why we require
handling the errors.
> And what information are you returning from your side-effect methods that you shouldn't be using? That's what I'm having a hard time trying to grok - the actual use case.
Collection.remove(at:) can return the element it returned for
convenience.  It could avoid doing that, and then you would need to
write another line to retrieve the element first if you need it.  And
you might need to add another line to store the index, if the index
computation was non-trivial.
let element = myCollection.remove(at: myCollection.index { $i % 0 == 1 })
vs.
let index = myCollection.index { $i % 0 == 1 }
let element = myCollection[index]
myCollection.remove(at: index)
Dmitri
-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
    
    
More information about the swift-evolution
mailing list