[nem-pl] troche javizacji do csharpizacji ?

Michal Moskal malekith at pld-linux.org
Fri Feb 6 17:20:06 CET 2004


On Thu, Feb 05, 2004 at 02:49:16PM +0100, Kamil Skalski wrote:
> A patrzyłeś na nasze (nie jest to jeszcze to co byśmy chcieli, bo nie mamy 
> properties i nie możemy być zgodniz API .Netu) i C#-owe 'foreach'?
> 
> def l = array [1, 2, 3, 4, 5, 6];
> foreach (x : int in l)   ( : int może być inferowane)
>   printf ("%d\n", x);
> 
> w C#
> foreach (int x in l)
>   System.Console.WriteLine ("{0}", x)
> 
> to znaczy to wszystko działa na klasach posiadających Enumerator (z 
> IEnumerator) - nie jestem pewien, czy akurat array go ma ;-)

Ma. Aczkolwiek warto by zrobić tak, że jak widzi tablice to generuje
specjalizowany kod:
  
  for (mutable i <- 0; i < ar.Length; i <- i + 1) {
    def x = ar[i];
    ... 
  }

Ponieważ jest on szybszy (nie trzeba tworzyć enumeratora, wywoływać
metod etc). To by zawsze jakaś przewaga nad C# była ;)

-- 
: Michal Moskal :: http://www.kernel.pl/~malekith :: GCS !tv h e>+++ b++
: When in doubt, use brute force. -- Ken Thompson :: UL++++$ C++ E--- a?




More information about the devel-pl mailing list