> On Feb 22, 2017, at 8:25 PM, Derrick Ho via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Did you know you can use a static variable as a default parameter?
> 
> class poncho {
> static var color= "yellow"
> 
> func foo(color: String = poncho.color){}
> }
> 
> I think instance members should not be allowed as default members though. It 
> may lead to unexpected behavior.

Could you explain or give an example of how the behavior would be unexpected?

> On Wed, Feb 22, 2017 at 11:06 PM T.J. Usiyan via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> +1 if this doesn't have terrible implications. 
> 
> The downside to making it IUO or Optional is that that changes the type 
> signature of  `index(i:offsetBy:)` for no reason other than a default value. 
> If you decide to change to or away from providing a default value it probably 
> shouldn't change the type accepted in that spot. 
> 
> On Wed, Feb 22, 2017 at 7:32 PM, Ben Cohen via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> 
>> On Feb 22, 2017, at 10:42 AM, Nate Cook via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>> Oops, left out that there's this horrifying way of writing it right now:
>> 
>> extension Collection {
>>     func index(_ i: Index! = nil, offsetBy n: IndexDistance) -> Index {
>>         let i = i ?? startIndex
>>         // ...
>>     }
>> }
>> 
>> Nobody wants that.
>> 
> 
> Oh I don’t think it’s all that bad! It also doesn’t need to be an IUO, since 
> you’re unwrapping it immediately into another variable no matter what.
> 
> This also gives you the flexibility to write this:
> 
> extension Collection {
>     func index(_ i: Index? = nil, offsetBy n: IndexDistance) -> Index {
>         let i = i ?? (n < 0 ? endIndex : startIndex)
>         // ...
>     }
> }
> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to