> On Dec 28, 2015, at 11:46 AM, Matthew Johnson via swift-evolution 
> <[email protected]> wrote:
> 
> 
>> On Dec 28, 2015, at 1:39 PM, Stephen Celis <[email protected]> wrote:
>> 
>> I'm not sure I understand the use case. Aren't these optimizations that 
>> could be better handled by the compiler? Do we really want to provide hints 
>> like these manually in our own libraries? Instead of `value: Int? = nil`, 
>> why not `value: Int = 42`?
> 
> I agree that part of this is simply an optimization.  The part that was 
> interesting enough that I thought it is worth sharing is that it could 
> improve resilience in a way that a default value does not allow.
> 
> That said, it is not a “proposal”.  I’m not sure whether it is really worth 
> considering or not.  But I think it is interesting enough to toss out to the 
> community and see what the response is.

You can provide resilience with a non-optional parameter by making the default 
argument the result of calling a resilient function (or evaluating a resilient 
property):

@availability(x.y)
internal func defaultForFoo() -> Int { return 941 }

public func foo(value: Int = defaultForFoo()) { }

-Joe
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to