[nem-pl] Kolejne uwagi/pytania
Wojtek Knapik
d at hell.art.pl
Sun Jun 20 15:32:41 CEST 2004
On Sun, Jun 20, 2004 at 12:54:20PM +0200, Kamil Skalski wrote:
> Saturday 19 June 2004 16:42, Wojtek Knapik wrote:
>
> > 1. Mialem raz taka sytuacje, ze chcialem zrobic zmienna, ktorej wartosc
> > bylaby przypisywana tylko raz (ale nie w konstruktorze klasy, tylko w
> > jednej z pozostalych metod), i miala byc do tego public. W efekcie
> > bylem zmuszony zrobic ja mutable, a to juz nie bylo dokladnie to o co
> > mi chodzilo.
>
> Tak, zdarzają się takie sytuacje, w szczególności jeśli jest specjalna metoda
> Init, która powinna coś zapisywać i wywoływana jest później niż konstruktor.
> Standardowe podejście do tego jest chyba takie, że pole robisz prywatne i
> mutable, a dostęp z niego jest tylko przez property, która jest readonly
> private mutable myX : int;
> public X : int {
> get { myX }
> }
>
> > Jasne, mozna ja chronic ustawiajac jako private i udostepniajac
> > wartosc poprzez jakas metode, ale to juz nie jest takie ladne ;/
> > *Musi* tak byc ? Nie daloby sie tego zrobic jakos, zeby byla stala ?
>
> można też
> public x : int = 5;
>
> ale to jest równoważne z dodaniem do konstruktora
> this () {
> x = 5;
> }
>
> Lepszej metody chyba nie ma, bo jak określisz, że akurat ta metoda może
> zapisać do zmiennej, a inne nie mogą.
No to by bylo fatalnie ;/ Chcialbym pisac w Nemerle czysto
funkcjonalnie, bez uzycia jakichkolwiek zmiennych, a w takiej sytuacji
jest to niemozliwe.. Nie daloby sie tego zalatwic jakos po stronie
kompilatora ? Bo w koncu wartosc tego pola ustalamy raz, wiec mogloby
byc stala..
narazie,
Wojtek
PS. Nie zapisuje sie na liste, bo i tak bym jej nie czytal w calosci, a
to co mnie interesuje jest w archwiach na stronie, takze tam sobie bede
sprawdzal ewentualne odpowiedzi. Dzieki za maila w kazdym razie.
More information about the devel-pl
mailing list