<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I’m a +1 for warning in cases like that, if let foo = foo is probably fine, though personally I use different names anyway.</div><div class=""><br class=""></div><div class="">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:</div><div class=""><br class=""></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>for eachIndex in 1 ..&lt; 100 { … }</font></div><div class=""><br class=""></div><div class="">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:</div><div class=""><br class=""></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>let theValues:[Int?] = []</font></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>for eachValue in theValues {</font></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>if let theValue = eachValue { /* Do some stuff */ }</font></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>else { /* Do some other stuff */ }</font></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>}</font></div><div class=""><br class=""></div><div class="">I actually see a surprising number of examples like:</div><div class=""><br class=""></div><div class=""><font face="Monaco" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>for i in 1 ..&lt; 100 { … }</font></div><div class=""><br class=""></div><div class="">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.</div><br class=""><div><blockquote type="cite" class=""><div class="">On 29 Mar 2016, at 12:39, Andrey Tarantsov via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">This is idiomatic Swift. I see no readability issues with that.<div class=""><br class=""></div><div class="">Of course, shadowing a local var with a for loop counter is another case. I'd say a warning is warranted there.<br class=""><div class=""><br class=""></div><div class="">A.</div><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Mar 29, 2016, at 5:30 PM, Biala &lt;<a href="mailto:bialata@yahoo.com" class="">bialata@yahoo.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><div id="yui_3_16_0_ym18_1_1459250663590_3186" class=""><span class=""></span></div><div class=""></div><div id="yui_3_16_0_ym18_1_1459250663590_3196" class="">And you are OK with that ????</div><div id="yui_3_16_0_ym18_1_1459250663590_3196" class="">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 :)</div><div id="yui_3_16_0_ym18_1_1459250663590_3196" class=""><br class=""></div><div id="yui_3_16_0_ym18_1_1459250663590_3196" class="">For me it is OK for student projects but not for big code that have to be supported for years ...</div> <div class="qtdSeparateBR"><br class=""><br class=""></div><div class="yahoo_quoted" style="display: block;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" class=""> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" class=""> <div dir="ltr" class=""><font size="2" face="Arial" class=""> On Tuesday, March 29, 2016 2:02 PM, Andrey Tarantsov &lt;<a href="mailto:andrey@tarantsov.com" class="">andrey@tarantsov.com</a>&gt; wrote:<br class=""></font></div>  <br class=""><br class=""> <div class="y_msg_container"><div id="yiv3776659409" class=""><div class=""><div class=""><blockquote class="yiv3776659409" type="cite"><div class="yiv3776659409"><div class="yiv3776659409"><div class="yiv3776659409" style="background-color:rgb(255, 255, 255);font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-size:16px;"><div class="yiv3776659409" dir="ltr" id="yiv3776659409yui_3_16_0_ym18_1_1459228604445_4742">Having more that one variable with the same name in one method is stupid and the language should prevent that at least.&nbsp;</div></div></div></div></blockquote><div class=""><br clear="none" class="yiv3776659409"></div><div class="">Actually, we're doing it all the time:</div><div class=""><br clear="none" class="yiv3776659409"></div><div class="">if let foo = foo {</div><div class="">&nbsp; ...</div><div class="">}</div><div class=""><br clear="none" class="yiv3776659409"></div><div class="">var foo = foo</div><div class=""><br clear="none" class="yiv3776659409"></div><div class="">You can do this in a subscope, you can do this to the arguments, and you can do this to fields.</div><div class="yiv3776659409yqt5411510444" id="yiv3776659409yqtfd90738"><div class=""><br clear="none" class="yiv3776659409"></div><div class="">A.</div><div class=""><br clear="none" class="yiv3776659409"></div></div></div></div></div><br class=""><br class=""></div>  </div> </div>  </div></div></div></div></blockquote></div><br class=""></div></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></body></html>