<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">Il giorno ven 14 dic 2018 alle ore 00:52 Benoît Minisini <<a href="mailto:g4mba5@gmail.com">g4mba5@gmail.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Le 14/12/2018 à 00:02, Christof Thalhofer a écrit :<br>
> Am 12.12.18 um 00:16 schrieb Benoît Minisini:<br>
> <br>
>> Because as soon as variables can be declared anywhere, people will start<br>
>> to use that for writing ugly code. :-)<br>
> <br>
> Exactly. I know it because I had a hard work with my own code which was<br>
> more than ten years old (VBA).<br>
> <br>
> If we have to declare variables only at the beginning we tend to write<br>
> shorter methods which is much easier to understand. Especially if the<br>
> code is a couple of weeks/months/years old.<br>
> <br>
> Since I program in Gambas my methods are smaller. Every time I see that<br>
> I had to declare many variables at the beginning I feel a kind of shame.<br>
> Because I know that the number of variables correlates with the<br>
> incomprehensibility of my own code.<br>
> <br>
> Alles Gute<br>
> <br>
> Christof Thalhofer<br>
> <br>
<br>
Since last commit:<br>
<br>
- Local variables can be declared anywhere in the function, but they <br>
always have a function scope.<br>
<br>
- Loop variables can be declared directly in the loop opening syntax. <br>
And they too have a function scope.<br>
<br>
- Loop variables can be redeclared as soon as it keeps its type.<br>
<br>
Now maybe I could start thinking releasing Gambas 3.12?<br>
<br>
Or should I remove the possibility of declaring variables anywhere before?<br>
<br>
-- <br>
Benoît Minisini<br></blockquote><div><br></div><div>Hi Benoit,</div><div><br></div><div>Public Sub Main()<br><br>   For n As Byte = 0 To 9<br>     Dim v As Byte<br>     Print v<br>     Inc v<br>     Print v<br>     Print n<br>   Next<br>   <br>   Print "==========================="<br>   <br>   Dim sStr As String[] = Split("Any phrase of this book", " ")<br>   For Each s As String In sStr<br>     Print s<br>   Next<br>   Print "---------------------------"<br>   Print n<br>   Print v<br>   Print s<br>   If sStr Then Print "sStr exist"<br><br>End</div><div><br></div><div>Would not it be more logical to expect that only sStr existed after the For blocks?</div><div><br></div><div>Regards</div><div>Gianluigi<br></div></div></div></div></div></div>