ዝገት 1.35 የፕሮግራም አወጣጥ ቋንቋ መለቀቅ

ወስዷል የስርዓት ፕሮግራሚንግ ቋንቋ መለቀቅ ዝገት 1.35በሞዚላ ፕሮጀክት የተገነባ. ቋንቋው በአስተማማኝ የማህደረ ትውስታ አስተዳደር ላይ ያተኩራል፣ አውቶማቲክ የማህደረ ትውስታ አስተዳደርን ይሰጣል፣ እና ቆሻሻ ሰብሳቢ እና የሩጫ ጊዜን ከመጠቀም በመቆጠብ ከፍተኛ የስራ ትይዩነትን ለማግኘት መንገዶችን ይሰጣል።

የሩስት አውቶማቲክ ማህደረ ትውስታ አስተዳደር ገንቢውን ጠቋሚዎችን ከመጠቀም ያድናል እና ከዝቅተኛ ደረጃ የማስታወስ ችሎታ ማጭበርበር ከሚመጡ ችግሮች ይጠብቃል ፣ ለምሳሌ የማስታወሻ ቦታ ከተለቀቀ በኋላ መድረስ ፣ ባዶ ጠቋሚዎችን መሰረዝ ፣ ቋት መጨናነቅ ፣ ወዘተ. ቤተ መፃህፍትን ለማሰራጨት፣ መሰብሰብን ለማረጋገጥ እና ጥገኞችን ለማስተዳደር ፕሮጀክቱ የጥቅል አስተዳዳሪን ያዘጋጃል። ጭነት, ይህም ለፕሮግራሙ የሚያስፈልጉትን ቤተ-መጻሕፍት በአንድ ጠቅታ እንዲያገኙ ያስችልዎታል. ማከማቻ ቤተ መጻሕፍትን ለማስተናገድ ይደገፋል crates.io.

ዋና ፈጠራዎች:

  • ባህሪያት FnOnce, FnMut и Fn ለክምር-የተመደበ የቦክስ ዓይነቶች Box‹dyn FnOnce›፣ Box‹dyn FnMut› እና Box‹dyn Fn›;
  • ታክሏል። ዕድል ወደ ደህንነታቸው ያልተጠበቁ የተግባር ጠቋሚዎች መዝጊያዎችን መውሰድ (ደህንነቱ ያልተጠበቀ fn);
  • ማክሮውን “dbg!” የመጥራት ችሎታን ተግባራዊ አድርጓል። የሁኔታዊ መግለጫዎችን አሠራር ለማረም ምቹ የሆነውን ተለዋዋጭ ሳይመረምሩ በ stderr ውስጥ የፋይል ስም እና የመስመር ቁጥሩን ለማሳየት ያለ ክርክሮች;
  • የተጨመረው ዘዴ " ወደ ተንሳፋፊ ነጥብ ዓይነቶች f32 እና f64የቅጂ ምልክት» ቁምፊን ከአንድ ቁጥር ወደ ሌላ ለመገልበጥ;
  • የተጨመረ ዘዴ"ያካትታል"፣ ይህም የተገለጸው እሴት በክልል ውስጥ መሆኑን ወይም አለመሆኑን እንዲያረጋግጡ ያስችልዎታል።
  • የተጨመረ ዘዴ ማጣቀሻ፡ ሕዋስ፡ ካርታ_ስፕሊትየተበደረውን የRefCell እሴት ለተለያዩ የተበዳሪው መረጃዎች ክፍሎች እንዲያንፀባርቁ እና እንዲለዩ ያስችልዎታል።
  • የተጨመረ ዘዴ RefCell::በመተካት የአሁኑን የ RefCell ዋጋ ለመተካት እና የድሮውን ዋጋ በውጤቱ ለመመለስ;
  • የተጨመረ ዘዴ ptr:: ሃሽ ከተጠቀሰው እሴት ይልቅ ጠቋሚን ወይም ማጣቀሻን በአድራሻ ለመጥለፍ;
  • የተጨመረ ዘዴ አማራጭ::የተቀዳ:: የአማራጭ ‹&T› ወይም Option‹&mut T› አማራጮችን ይዘት ለመቅዳት;
  • የተረጋጉ ዘዴዎችን ጨምሮ አዲስ የኤፒአይ ክፍል ወደ የተረጋጋ ምድብ ተላልፏል
    f32:: የቅጂ ምልክት፣
    f64:: የቅጂ ምልክት፣
    RefCell::በመተካት
    RefCell::ካርታ_ስፕሊት፣
    ptr:: ሃሽ፣
    ክልል:: ይዟል፣
    ክልል ከ:: ይዟል፣
    ክልልTo:: ይይዛል፣
    ክልል አካታች:: ይዟል፣
    RangeToInclusive:: ይዟል እና
    አማራጭ::የተገለበጠ;

  • የተጨመረው drop_bounds ቼክ ወደ ክሊፕፒ (ሊንተር)፣ ወደ ተግባሩ “T: drop” ማሰርን ሲጨምር የሚቀሰቀስ;
  • አቀናባሪው ለአዲስ ዒላማ መድረክ ድጋፍ አድርጓል
    wasm32-የማይታወቅ-ዋሲ (በይነገጽ እኔ ነበርሁ ከአሳሹ ውጭ WebAssembly ለመጠቀም);

  • የ Rust Toolkit በመደበኛ ሲ ቤተ-መጽሐፍት Musl ላይ ተመስርቶ ለማሰራጨት የተስተካከለ ነው።

ምንጭ: opennet.ru

አስተያየት ያክሉ