On Mon, Dec 21, 2015 at 10:34 AM, Joe Groff <jgr...@apple.com> wrote:
>
>> On Dec 18, 2015, at 6:52 PM, Dmitri Gribenko <griboz...@gmail.com> wrote:
>>
>> On Fri, Dec 18, 2015 at 6:21 PM, Joe Groff <jgr...@apple.com> wrote:
>>>
>>> On Dec 18, 2015, at 6:08 PM, Dmitri Gribenko <griboz...@gmail.com> wrote:
>>> There's also a possibility that we add 'out' parameters in the future, and
>>> if 'inout' would be spelled '&', then we would need to find another sigil
>>> for 'out'.
>>>
>>> We have multiple returns. Why would we ever add out parameters?
>>
>> I don't want to turn this thread into a discussion about out
>> parameters, but one reason would be to replace
>> AutoreleasingUnsafeMutablePointer.
>
> IMO we should eventually import out params from C as multiple returns.
>
>>  Another one is to add labels to
>> the output parameters:
>>
>> let (day, month, year) = parseDate()
>> let (year, day, month) = parseDate() // bug?
>
> Labeled tuples seem like they could help with that, with compiler QoI to 
> catch cases like this where you obviously permuted the return names.

Currently they don't help:

(swift) func parseDate() -> (day: Int, month: Int, year: Int) { return (0,0,0) }
(swift) let (year, month, day) = parseDate()
// (year, month, day) : (Int, Int, Int) = (0, 0, 0)

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 <griboz...@gmail.com>*/
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to