[swift-evolution] What about renaming Optional.map to Optional.mapMe ?

David Sweeris davesweeris at mac.com
Mon Dec 5 22:48:16 CST 2016


> On Dec 5, 2016, at 7:46 PM, Jay Zhao via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Hi there,
> 
> Code explains everything:
> 
> 	
> 
> /// Maybe a bad API naming in Swift? See below:
> 
>         /// array1 can be array of any object that have a `count` method
>         let array1 = [[String]]()
>         let array2 :[String]? = nil
>         
>         
>         // I believe the confusion between `array.map` and `optionalArray.map` is really bad.
>         // Because when you read code like this, you can not tell which is which:
>         _ = array1.map({$0.count})
>         _ = array2.map({$0.count})
>         
>         // It can be clearer:
>         // 1, we pass `self.element` into the closure
>         _ = array1.map({$0.count})
>         // 2, we pass self directly into the closure
>         _ = array2.mapMe({$0.count})
> 
> 
> The mapFlat method is also problematic.

It might be possible to convince me to support renaming map for optionals, but not to mapMe. As it is, you’ll have the same problem with anything having a map function where the element(s) also have a map function. Sets of arrays, arrays of dictionaries, etc. 

- Dave Sweeris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161205/86069e2d/attachment.html>


More information about the swift-evolution mailing list