Nim 0.20 թողարկումը կարելի է համարել առաջին կայուն 1.0 թողարկման թեկնածու, որը ներառում է փոխգործունակությունը խախտող մի քանի փոփոխություններ, որոնք անհրաժեշտ են առաջին կայուն մասնաճյուղը ձևավորելու համար, որը կապահովի լեզվի վիճակը: 1.0 տարբերակը գովազդվում է որպես կայուն, երկարաժամկետ աջակցության թողարկում, որը երաշխավորված կլինի պահպանել հետընթաց համատեղելիությունը լեզվի կայունացված մասում: Առանձին-առանձին, կոմպիլյատորը կունենա նաև փորձնական ռեժիմ, որտեղ կմշակվեն նոր գործառույթներ, որոնք կարող են խախտել հետընթաց համատեղելիությունը:
Nim 0.20-ում առաջարկվող փոփոխություններից են.
- «Ոչ»-ն այժմ միշտ միատարր օպերատոր է, այսինքն. «պնդել (ոչ ա)» արտահայտություններն այժմ անթույլատրելի են, և թույլատրվում է միայն «պնդել ոչ ա»;
- Միացված է ամբողջ թվերի և իրական թվերի փոխակերպման խիստ ստուգումներ կոմպիլյացիայի փուլում, այսինքն. «const b = uint16(-1)» արտահայտությունն այժմ կհանգեցնի սխալի, քանի որ -1-ը չի կարող փոխարկվել անստորագիր ամբողջ թվի տեսակի.
- Տրամադրվում է բազմակի բացում հաստատունների և հանգույցի փոփոխականների համար:
Օրինակ, այժմ կարող եք օգտագործել առաջադրանքներ, ինչպիսիք են 'const (d, e) = (7, "ութ")" և "for (x, y) f-ում"; - Տրամադրվում է հեշերի և աղյուսակների լռելյայն սկզբնավորում: Օրինակ՝ «var s: HashSet[int]» հայտարարելուց հետո կարող եք անմիջապես գործարկել «s.incl(5)»-ը, որը նախկինում հանգեցրել է սխալի.
- Բարելավված սխալի մասին տեղեկատվություն «case» օպերատորի և զանգվածի ինդեքսի հետ կապված խնդիրների համար՝ սահմաններից դուրս;
- Սեղանի երկարությունը կրկնելու ընթացքում փոխելն արգելվում է:
Source: opennet.ru