Nim 0.20 bertsioa lehen 1.0 bertsio egonkorraren bertsiorako hautagai gisa ikus daiteke, hizkuntzaren egoera konprometitzen duen lehen adar egonkorra osatzeko beharrezkoak diren bateragarritasun-hauste aldaketa batzuk barne. 1.0 bertsioa epe luzerako euskarri egonkor gisa aurkezten da, hizkuntzaren zati egonkortuan atzerako bateragarritasuna mantentzea bermatuta egongo dena. Bereiz, modu esperimental bat ere eskuragarri egongo da konpilatzailean, eta bertan atzerako bateragarritasuna hautsi dezaketen ezaugarri berriak garatuko dira.
Nim 0.20-n proposatutako aldaketetatik, honako hauek nabarmendu ditzakegu:
- "Ez" orain beti operadore unarioa da, hau da. "assert(ez a)" bezalako esamoldeak baliogabeak dira orain eta "assert not a" bakarrik onartzen da;
- Konpilazio garaian osoak eta zenbaki errealak bihurtzeko egiaztapen gogorrak gaituta daude, hau da. "const b = uint16(-1)" esapideak errore bat eragingo du orain, -1 ezin baita zeinu gabeko zenbaki oso batera bihurtu;
- Konstanteen eta begiztetako aldagaien tuplak desekatzea eskaintzen da.
Adibidez, 'const (d, e) = (7, "zortzi")' eta "for (x, y) in f" bezalako esleipenak erabil daitezke orain; - Hash eta taulen hasierako lehenetsia eman du. Adibidez, "var s: HashSet[int]" deklaratu ondoren, berehala exekutatu dezakezu "s.incl(5)", eta horrek errore bat ekartzen zuen;
- Erroreen informazio-edukia hobetu da "kasu" operadorearekin eta array-indizearekin lotutako arazoetarako mugetatik kanpo;
- Debekatuta dago taularen luzera aldatzea iteraldian zehar.
Iturria: opennet.ru