I’m a +1 for warning in cases like that, if let foo = foo is probably fine, 
though personally I use different names anyway.

Actually I use a lot of Applescript style naming, though admittedly I can be a 
bit inconsistent about it. For example, I like using eachFoo as a name for a 
loop variable like so:

        for eachIndex in 1 ..< 100 { … }

Which can read nicely as natural language, but since I don’t use eachFoo 
anywhere else, helps to avoid name collisions. If eachFoo is optional, then I 
might unwrap the value into theFoo instead like-so:

        let theValues:[Int?] = []
        for eachValue in theValues {
                if let theValue = eachValue { /* Do some stuff */ }
                else { /* Do some other stuff */ }
        }

I actually see a surprising number of examples like:

        for i in 1 ..< 100 { … }

But does anyone actually use these? Since I learned to stop using c-style loops 
in Swift I haven’t used single letter variables at all, so this seems like 
partly an issue of choosing bad variable names; not saying mine are better, but 
I find that they work well for me, even if they’re a bit longer overall. Unless 
I’m implementing some kind of formula with well understood letters for 
variables I wouldn’t use such short names anywhere, and even then I’d probably 
try to find out what each variable is and find a full name for it, for my own 
sake.

> On 29 Mar 2016, at 12:39, Andrey Tarantsov via swift-evolution 
> <[email protected]> wrote:
> 
> This is idiomatic Swift. I see no readability issues with that.
> 
> Of course, shadowing a local var with a for loop counter is another case. I'd 
> say a warning is warranted there.
> 
> A.
> 
> 
>> On Mar 29, 2016, at 5:30 PM, Biala <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> And you are OK with that ????
>> I can not imagine my team writing such code and me looking to 5 code reviews 
>> per day having to find out what the variable actually is every time :)
>> 
>> For me it is OK for student projects but not for big code that have to be 
>> supported for years ...
>> 
>> 
>> On Tuesday, March 29, 2016 2:02 PM, Andrey Tarantsov <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>>> Having more that one variable with the same name in one method is stupid 
>>> and the language should prevent that at least. 
>> 
>> Actually, we're doing it all the time:
>> 
>> if let foo = foo {
>>   ...
>> }
>> 
>> var foo = foo
>> 
>> You can do this in a subscope, you can do this to the arguments, and you can 
>> do this to fields.
>> 
>> A.
>> 
>> 
>> 
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

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

Reply via email to