రస్ట్ 1.35 ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల

జరిగింది సిస్టమ్ ప్రోగ్రామింగ్ భాష విడుదల రస్ట్ 1.35, మొజిల్లా ప్రాజెక్ట్ ద్వారా అభివృద్ధి చేయబడింది. భాష మెమరీ భద్రతపై దృష్టి పెడుతుంది, ఆటోమేటిక్ మెమరీ నిర్వహణను అందిస్తుంది మరియు చెత్త సేకరించేవాడు లేదా రన్‌టైమ్‌ను ఉపయోగించకుండా అధిక పని సమాంతరతను సాధించడానికి ఒక మార్గాన్ని అందిస్తుంది.

రస్ట్ యొక్క ఆటోమేటిక్ మెమరీ మేనేజ్‌మెంట్ డెవలపర్‌ను పాయింటర్ మానిప్యులేషన్ నుండి విముక్తి చేస్తుంది మరియు తక్కువ-స్థాయి మెమరీ మానిప్యులేషన్ నుండి ఉత్పన్నమయ్యే సమస్యల నుండి రక్షిస్తుంది, ఉదాహరణకు ఫ్రీ-ఫ్రీ మెమరీ యాక్సెస్‌లు, శూన్య పాయింటర్ డెరిఫరెన్స్‌లు, బఫర్ ఓవర్‌రన్‌లు మరియు వంటివి. లైబ్రరీలను పంపిణీ చేయడానికి, అసెంబ్లీని నిర్ధారించడానికి మరియు ప్రాజెక్ట్ ద్వారా డిపెండెన్సీలను నిర్వహించడానికి ప్యాకేజీ మేనేజర్ అభివృద్ధి చేయబడుతోంది. సరుకు, ప్రోగ్రామ్‌కు అవసరమైన లైబ్రరీలను ఒకే క్లిక్‌లో పొందడానికి మిమ్మల్ని అనుమతిస్తుంది. లైబ్రరీలను హోస్ట్ చేయడానికి రిపోజిటరీకి మద్దతు ఉంది crates.io.

ప్రధాన ఆవిష్కరణలు:

  • లక్షణాలు FnOnce, FnMut и Fn కుప్ప-కేటాయించిన కోసం అమలు పెట్టె రకాలు Box‹dyn FnOnce›, Box‹dyn FnMut› మరియు Box‹dyn Fn›;
  • చేర్చబడింది అవకాశం అసురక్షిత ఫంక్షన్ పాయింటర్‌లకు కాస్టింగ్ మూసివేతలు (అసురక్షిత fn);
  • స్థూల “dbg!” అని పిలిచే సామర్థ్యాన్ని అమలు చేసింది. వేరియబుల్‌ను తనిఖీ చేయకుండా stderrలో ఫైల్ పేరు మరియు లైన్ నంబర్‌ను ప్రదర్శించడానికి వాదనలు లేకుండా, ఇది షరతులతో కూడిన వ్యక్తీకరణల ఆపరేషన్‌ను డీబగ్ చేయడానికి అనుకూలమైనది;
  • ఫ్లోటింగ్ పాయింట్ రకాల f32 మరియు f64కి మెథడ్ జోడించబడిందికాపీ సైన్» ఒక అక్షరాన్ని ఒక సంఖ్య నుండి మరొక దానికి కాపీ చేయడానికి;
  • జోడించిన పద్ధతి "కలిగి“, ఇది పేర్కొన్న విలువ పరిధిలో ఉందో లేదో తనిఖీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది;
  • పద్ధతి జోడించబడింది Ref:Cell:map_split, అరువు తీసుకున్న డేటాలోని వివిధ భాగాల కోసం అరువు తెచ్చుకున్న RefCell విలువను ప్రతిబింబించడానికి మరియు వేరు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది;
  • పద్ధతి జోడించబడింది RefCell::replace_with ప్రస్తుత RefCell విలువను భర్తీ చేయడానికి మరియు ఫలితంగా పాత విలువను తిరిగి ఇవ్వడానికి;
  • పద్ధతి జోడించబడింది ptr:: హాష్ చిరునామా విలువ కాకుండా చిరునామా ద్వారా పాయింటర్ లేదా సూచనను హ్యాష్ చేయడం;
  • పద్ధతి జోడించబడింది ఎంపిక:: కాపీ చేయబడింది ఎంపిక‹&T› లేదా ఎంపిక‹&mut T› ఎంపికల కంటెంట్‌లను కాపీ చేయడానికి;
  • APIల యొక్క కొత్త భాగం స్థిరీకరించబడిన పద్ధతులతో సహా స్థిరమైన వర్గానికి బదిలీ చేయబడింది
    f32::కాపీసైన్,
    f64::కాపీసైన్,
    RefCell::replace_with,
    RefCell::map_split,
    ptr:: హాష్,
    పరిధి:: కలిగి ఉంది,
    పరిధి నుండి:: కలిగి ఉంది,
    పరిధి నుండి:: కలిగి ఉంది,
    రేంజ్‌ఇన్‌క్లూసివ్:: కలిగి ఉంది,
    RangeToInclusive:: కలిగి మరియు
    ఎంపిక :: కాపీ చేయబడింది;

  • క్లిప్పి (లింటర్)కి డ్రాప్_బౌండ్స్ చెక్ జోడించబడింది, ఇది ఫంక్షన్‌కు “T: డ్రాప్” బైండింగ్‌ను జోడించినప్పుడు ట్రిగ్గర్ చేయబడుతుంది;
  • కంపైలర్ కొత్త లక్ష్య ప్లాట్‌ఫారమ్‌కు మద్దతును జోడించింది
    wasm32-unknown-wasi (ఇంటర్ఫేస్ నేనా బ్రౌజర్ వెలుపల WebAssemblyని ఉపయోగించడానికి);

  • రస్ట్ టూల్‌కిట్ ప్రామాణిక C లైబ్రరీ Musl ఆధారంగా పంపిణీల కోసం స్వీకరించబడింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి