Nim 0.20 విడుదలను మొదటి స్థిరమైన 1.0 విడుదలకు అభ్యర్థిగా పరిగణించవచ్చు, ఇది భాష యొక్క స్థితికి కట్టుబడి ఉండే మొదటి స్థిరమైన శాఖను రూపొందించడానికి అవసరమైన అనేక ఇంటర్ఆపెరాబిలిటీ-బ్రేకింగ్ మార్పులను కలుపుతుంది. వెర్షన్ 1.0 అనేది స్థిరమైన, దీర్ఘకాలిక మద్దతు విడుదలగా ప్రచారం చేయబడింది, ఇది భాష యొక్క స్థిరీకరించబడిన భాగంలో వెనుకబడిన అనుకూలతను కొనసాగించడానికి హామీ ఇవ్వబడుతుంది. విడిగా, కంపైలర్లో ప్రయోగాత్మక మోడ్ కూడా అందుబాటులో ఉంటుంది, దీనిలో వెనుకబడిన అనుకూలతను విచ్ఛిన్నం చేసే కొత్త ఫీచర్లు అభివృద్ధి చేయబడతాయి.
నిమ్ 0.20లో ప్రతిపాదించిన మార్పులలో ఇవి ఉన్నాయి:
- "కాదు" అనేది ఇప్పుడు ఎల్లప్పుడూ అనారీ ఆపరేటర్, అనగా. "అసెర్ట్ (ఎ కాదు)" వంటి వ్యక్తీకరణలు ఇప్పుడు అనుమతించబడవు మరియు "అసెర్ట్ నాట్ ఎ" మాత్రమే అనుమతించబడతాయి;
- సంకలన దశలో పూర్ణాంకాలు మరియు వాస్తవ సంఖ్యల మార్పిడి కోసం కఠినమైన తనిఖీలు ప్రారంభించబడ్డాయి, అనగా. "const b = uint16(-1)" అనే వ్యక్తీకరణ ఇప్పుడు దోషానికి దారి తీస్తుంది, ఎందుకంటే -1 సంతకం చేయని పూర్ణాంకం రకానికి మార్చబడదు;
- స్థిరాంకాలు మరియు లూప్ వేరియబుల్స్ కోసం టుపుల్స్ అన్ప్యాకింగ్ అందించబడుతుంది.
ఉదాహరణకు, ఇప్పుడు మీరు 'const (d, e) = (7, "aight")" మరియు "for (x, y) in f" వంటి అసైన్మెంట్లను ఉపయోగించవచ్చు; - హాష్లు మరియు టేబుల్ల డిఫాల్ట్ ప్రారంభీకరణ అందించబడింది. ఉదాహరణకు, "var s: HashSet[int]" ప్రకటించిన తర్వాత మీరు వెంటనే "s.incl(5)"ని అమలు చేయవచ్చు, ఇది మునుపు లోపానికి దారితీసింది;
- "కేస్" ఆపరేటర్ మరియు శ్రేణి సూచికకు సంబంధించిన సమస్యల కోసం మెరుగైన ఎర్రర్ సమాచారం హద్దులు దాటిపోయింది;
- పునరావృత సమయంలో పట్టిక పొడవును మార్చడం నిషేధించబడింది.
మూలం: opennet.ru