> Le 13 sept. 2016 à 01:48, Greg Parker via swift-evolution 
> <[email protected]> a écrit :
> 
> 
>> On Sep 12, 2016, at 3:39 PM, Douglas Gregor <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> As an amendment to SE-0140, Swift will produce a warning when an optional 
>> value is converted to a value of type Any, e.g.,
>> 
>>      MyClass().doSomething(stringOpt)  // warning: optional value of type 
>> ‘String?’ is converted to an ‘Any’
>>                                        // note: use ‘!’ to force-unwrap the 
>> optional
>>                                        // note: use ‘??’ to provide a 
>> default value if the optional is nil
>>                                        // note: use ‘as Any’ to silence this 
>> warning
>> 
>> Such a warning will address most accidental injections of optional values 
>> into Any, and the core team felt that this addresses accidental boxing of 
>> optional values better than leaving the opaque object types to fail fast in 
>> Objective-C code that inspects them (e.g., see this message 
>> <https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160905/026961.html>
>>  for a negative review partly on these grounds).
> 
> Is there a recommended pattern for defining a callee that actually wants to 
> accept anything including optionals with no warning for the caller? 
> 

A function that accept anything (including nil) shouldn’t be declared as 
nonnull. If I understand correctly, it should be enough to avoid warning.


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

Reply via email to