Nim 0.20 laidienu var uzskatīt par kandidātu pirmajam stabilajam 1.0 laidienam, kas ietver vairākas sadarbspēju traucējošas izmaiņas, kas nepieciešamas, lai izveidotu pirmo stabilo atzaru, kas ietekmēs valodas stāvokli. Versija 1.0 tiek uzskatīta par stabilu, ilgtermiņa atbalsta laidienu, kas garantēs, ka saglabās atpakaļejošu saderību stabilizētajā valodas daļā. Atsevišķi kompilatoram būs pieejams arī eksperimentāls režīms, kurā tiks izstrādātas jaunas funkcijas, kas var traucēt atpakaļejošu saderību.
Starp Nim 0.20 ierosinātajām izmaiņām ir:
- "Not" tagad vienmēr ir unārs operators, t.i. izteicieni, piemēram, “apgalvot(not a)” tagad nav atļauti, un ir atļauti tikai “apgalvot nav a”;
- Iespējota stingra veselu skaitļu un reālu skaitļu konvertēšanas pārbaude kompilācijas stadijā, t.i. izteiksme "const b = uint16(-1)" tagad radīs kļūdu, jo -1 nevar pārvērst par neparakstītu vesela skaitļa tipu;
- Tiek nodrošināta konstantu un cilpas mainīgo korešu izpakošana.
Piemēram, tagad varat izmantot tādus uzdevumus kā “const (d, e) = (7, “astoņi”)” un “for (x, y) in f”; - Nodrošināta noklusējuma jaucējvārdu un tabulu inicializācija. Piemēram, pēc “var s: HashSet[int]” deklarēšanas varat nekavējoties izpildīt “s.incl(5)”, kas iepriekš izraisīja kļūdu;
- Uzlabota kļūdu informācija problēmām, kas saistītas ar operatoru “case” un masīva indeksu ārpus robežām;
- Tabulas garuma maiņa iterācijas laikā ir aizliegta.
Avots: opennet.ru