2012-05-05 10 views

Odpowiedz

7

Zmienna lokalna metody jest lokalną zmienną zadeklarowaną w zakresie metody.

W związku z tym zmienna lokalna inna niż metoda powinna być zmienną o szerszym zakresie, na przykład o zasięgu klasy.

Nie można powiedzieć na pewno, dlaczego ktoś mógłby powiedzieć, że są problematyczne. Być może jest tak po prostu dlatego, że wprowadzają zmienny stan w obiektach.

+3

Im mniejszy zakres zmiennej, tym mniej prawdopodobne, że ją zepsuć. – ziggystar

+0

Zmienne lokalne metody są ewidentnie przezroczyste z zewnątrz metody, co oznacza, że ​​nie mogą powodować problemów w dowolnym miejscu poza metodą. –

+0

Tak więc zmiennymi lokalnymi nie-metod są pola. Czy inne istnieją inne typy zmiennych, które nie są lokalnymi metodami? –

3

Problem ze zmiennymi nie-metod lokalnymi polega na tym, że wprowadzają one zmienne stany do klasy/obiektu. Jest to coś, czego powinieneś unikać, gdy tylko możesz, ponieważ scala jest również językiem funkcjonalnym. (W czysto funkcjonalnych językach, takich jak Haskell, zmienne są zabronione). Te zmienne zaczynają produkować jeszcze więcej problemów, gdy zaczynasz pracować równolegle.

+0

Zaakceptowałem odpowiedź aioobe dla definicji, ale zgadzam się z twoim problemem! –

+0

Tak, jego definicja jest dobra. –