Die vrystelling van Nim 0.20 kan gesien word as 'n vrystellingskandidaat vir die eerste stabiele 1.0-vrystelling, insluitend verskeie versoenbaarheid-breek veranderinge wat nodig is om die eerste stabiele tak te vorm wat die toestand van die taal verbind. Weergawe 1.0 word voorgehou as 'n stabiele, langtermyn-ondersteuningsvrystelling wat gewaarborg sal word om terugwaartse versoenbaarheid in die gestabiliseerde deel van die taal te handhaaf. Afsonderlik sal 'n eksperimentele modus ook in die samesteller beskikbaar wees, waarin nuwe kenmerke ontwikkel sal word wat terugwaartse versoenbaarheid kan verbreek.
Van die veranderinge wat in Nim 0.20 voorgestel word, kan ons uitlig:
- "Nie" is nou altyd 'n unΓͺre operateur, m.a.w. uitdrukkings soos "assert(not a)" is nou ongeldig en slegs "assert not a" word toegelaat;
- Harde tjeks vir die omskakeling van heelgetalle en reΓ«le getalle tydens samestellingstyd is geaktiveer, d.w.s. die uitdrukking "const b = uint16(-1)" sal nou 'n fout tot gevolg hΓͺ, aangesien -1 nie na 'n ongetekende heelgetaltipe omgeskakel kan word nie;
- Uitpak van tupels vir konstantes en lusveranderlikes word verskaf.
Byvoorbeeld, opdragte soos 'const (d, e) = (7, "agt")' en "vir (x, y) in f" kan nou gebruik word; - Voorsien verstek inisialisering van hashes en tabelle. Byvoorbeeld, nadat jy "var s: HashSet[int]" verklaar het, kan jy dadelik "s.incl(5)" uitvoer, wat vroeΓ«r tot 'n fout gelei het;
- Verbeter die inligting-inhoud van foute vir probleme wat verband hou met die "geval" operateur en skikking indeks buite perke;
- Dit is verbode om die tabellengte tydens iterasie te verander.
Bron: opennet.ru