[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