<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">We tend to avoid local write-once-read-once local variables, i.e. we tend to prefer<br><br>{<br>&nbsp;&nbsp;&nbsp;setSize(optimalSize());<br>}<br><br>to<br><br>{<br>&nbsp;&nbsp;&nbsp;CGSize newSize = optimalSize();<br>&nbsp;&nbsp;&nbsp;setSize(newSize);<br>}<br><br>But the up- and down-sides of this are the same as those of using auto.</div></blockquote><div><br></div>I think I basically agree with Phil here, and slightly disagree with your premise that the upsides and downsides are truly the same:</div><div><br></div><div>(1) The downside to explicit declaration in this case is greater because it requires an extra line of code.</div><div><br></div><div>(2) The upside to explicit declaration in this case is lesser because the value is used only once, and in a guaranteed trivial way (just passing it somewhere else).</div><div><br></div><div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Do you think we should also encourage use of write-once-read-once locals for the same reasons?</div></blockquote></div><br><div><div>No, not in general.</div><div><br></div><div>However, in rare cases, I think the balance shifts, and I do prefer an extra line of code for write-once-read-once variables. For example:</div><div><br></div><div>int documentWidth = screenWidth(); // The size of the document is equal to the size of the screen because…</div><div>layout(documentWidth);</div><div><br></div><div>In this case, the caller of screenWidth() is changing its meaning, and I slightly prefer to call that out.</div><div><br></div><div>Geoff</div><div><blockquote type="cite"></blockquote></div></div></body></html>