Portál AbcLinuxu, 2. května 2025 13:44
$ vždy odpovídá .length. Rozsah a[0 .. $] znamená pro všechna x: 0 ≤ x < length, stejně jako a[0 .. 4] už prvek a[4] nevybere. Tahle konvence vychází ještě z Céčka.Já jsem zvyklý na -1 z pythonu :(
Jinak co se týče používání D, mě přijdou dementní ty šablony. Evidentně bylo účelem udělat jej tak moc podobný samotnému jazyku, protože dle autora tohle je velký problém C++, ale skončilo to tak, jak muselo, jeho používání generik je prakticky omezeno na string mixiny, protože nic lepšího v imperativním jazyku stejně nevymyslíte. Druhá věc, která mě odradila úplně, je přetěžování operátorů, kde jsou značně svazující pravidla, která znemožňují implementovat třeba třístavovou booleovskou algebru, jakou má SQL.Nevim. S šablonami jsem zatím jen koketoval a přišly mi fajn.
>>> a = [0, 1, 2, 3] >>> a[0:-1] [0, 1, 2] >>> a[-1] 3a v D:
int[] a = [0, 1, 2, 3]; writeln(a[0 .. $]);vypíše
[0, 1, 2, 3]a
int[] a = [0, 1, 2, 3]; writeln(a[$]);vyhodí při kompilaci RangeError:
core.exception.RangeError@array_test(18): Range violation
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.