[swift-evolution] SE-0105: Removing Where Clauses from For-In Loops

Brandon Knope bknope at me.com
Fri Jun 24 10:32:10 CDT 2016



> On Jun 24, 2016, at 11:06 AM, Sean Heber via swift-evolution <swift-evolution at swift.org> wrote:
> And these 2 made good use, IMO, of “if-where” but I think that’s no longer in Swift 3? :/
> 
> 
> if let there = debugClickedSurfaceAt, here = mouseSurface where Global.debugPathTest {
> }
> 
> if let here = mouseAt where Global.debugWalkNeighbors {
> }
> 

Just for completeness, these will now be:

if let there = debugClickedSurfaceAt, let here = mouseSurface, Global.debugPathTest {
}

if let here = mouseAt, Global.debugWalkNeighbors {
}

Not too sure if this is any clearer ¯\_(ツ)_/¯ 


> 
> l8r
> Sean
> 
> 
> 
> 
>> On Jun 24, 2016, at 8:24 AM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> Thank you for collecting and sharing these. 
>> 
>> I suspect both of us look at these and say "Ah yes, this supports exactly what I've been saying".
>> 
>> -- E
>> 
>>> On Jun 23, 2016, at 11:59 PM, William Shipley <wjs at mac.com> wrote:
>>> 
>>> Here are some of my real-world examples:
>>> 
>>>        for modelUUIDAndInterfaceElement in modelUUIDsToInterfaceElements where !usedInterfaceElements.contains(modelUUIDAndInterfaceElement.1) {
>>>>>>        }
>>> 
>>>        for anchor in wall.anchors where boundsRect.contains(anchor.origin) {
>>>>>>        }
>>> 
>>>        for otherWall: Wall in self where otherWall != wall && !removedWalls.contains(otherWall) {
>>>>>>        }
>>> 
>>>        for wall in self as Set<Wall> {
>>>            for otherWall in self as Set<Wall> where otherWall != wall {
>>>>>>            }
>>>        }
>>> 
>>>        for wall in self as Set<Wall> where !checkedWalls.contains(wall) {
>>>>>>        } 
>>> 
>>> (x2 on that one)
>>> 
>>>        for otherPieceOfFurnitureNode in localFurnitureModelUUIDsToInterfaceElements!.values where otherPieceOfFurnitureNode !== pieceOfFurnitureNode {
>>>>>>        }
>>> 
>>>        for lineSegmentObject in wallRelatedLineSegments where remainingLineSegments.contains(lineSegmentObject) {
>>>>>>        }
>>> 
>>>        for colinearLineSegmentObject in remainingLineSegments where colinearLineSegmentObject.angle.isEssentially(infiniteLineAngle: lineSegmentObject.angle) {
>>>>>>        }
>>> 
>>> 
>>> I think this is basically as many as are found on all of github?
>>> 
>>> -W
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution


More information about the swift-evolution mailing list