Det kan nu være nyttigt, hvis man endnu ikke har refactored sine
switch-statements. Alle case's ligger nemlig i samme scope, og det kan
derfor blive mere eller mindre umuligt at holde styr på hvilke variabler,
der er interessante for hvilket scope.
Ja, mit udsagn er måske ikkeså meget:
"Det kan være interessant at opdele kodeblokke for at kunne genbruge
sine lokale variable."
Som det er:
"Det kan være interessant at sætte hvert af sine 'case' i {} blokke -
hvis man endnu har al koden stående her frem for i metoder. Hvilket iøvrigt
gør det forholdsvist let at refactor'e det ud i metoder, hvorved switch'en
bliver til en jumptable."
/nobody important
"kgc" <news1@kaspershjemmeside.dk> wrote in message
news:40a492be$0$462$edfadb0f@dread14.news.tele.dk...
> >>Et andet formål kunne måske være, at gøre det muligt at "genbruge"
> >>variabel-navne (hvis nu man har en dårlig fantasi).
> >
> >
> > Det lader sig ikke gøre i Java. Der er formentligt tale om et bevidst
> > designvalg da det sjældent er en god ide.
> Jeg er helt enig i, at det sjældent er en god idé, men det kan nu
> sagtens lade sig gøre ved brug af anonyme kodeblokke - men ikke i den
> samme blok (måske misforstår vi hinanden her?).
>
> Til tider gør man det måske ubevidst (f.eks. tællere i to på hinanden
> følgende for-løkker, som måske ikke altid er af samme type, men som
> alligevel begge hedder f.eks. "i").
>
> Eksempel (der kompilerer og kører som forventet):
>
> public class BadVarNames {
> public static void main(String[] args) {
> { //Start på anonym kodeblok
> int dumt = 5;
> //blah
> System.out.println(dumt);
> }
> String dumt;
> //blah blah
> dumt = "Dette er en string!";
> System.out.println(dumt);
> }
> }
>
> Her betyder den anonyme kodeblok, at variabelnavnet "dumt" kan bruges
> først til en int og siden til en String. Ikke særligt smart eller nyttigt.
>
> Mvh. Kasper
>
> --
> Besøg mig på nettet:
http://www.kaspershjemmeside.dk