Руст 1.35

Руст развојни тим са задовољством најављује нову верзију свог језика: 1.35. Руст је програмски језик који вам омогућава да пишете поуздане и ефикасне програме.

Ако већ имате инсталиран Руст преко руступа, можете ажурирати командом:
$ руступ ажурирање стабилно

Главна ствар у ажурирању је имплементација карактеристика затварања Фн, ФнОнце, ФнМут, за Бок ,Бок ,Бок , редом. Додавање могућности за пребацивање затварања на показиваче на несигурне функције, позивање макроа дбг!() сада је могуће без аргумената, а стандардна библиотека је стабилизована.

За детаље:

  • У новој верзији додали смо имплементације особина Фн, ФнОнце, ФнМут за Бок ,Бок ,Бок , редом.
    Сада ће овај код радити:
    фн фоо(к: Бок у8>) -> Вец {
    вец![1, 2, 3, 4].инто_итер().мап(к).цоллецт()
    }

    Такође можете позвати затварање директно из Бок-а :
    фн фоо(к: Бок ) {
    Икс()
    }

  • Затварања се сада могу пребацити на показиваче на небезбедни фн.
    Сада је овај код важећи:
    /// Безбедносне инваријанте су оне прослеђеног показивача `небезбедног фн`.
    небезбедно фн цалл_унсафе_фн_птр(ф: небезбедно фн()) {
    ф()
    }

    фн маин() {
    // СИГУРНОСТ: Не постоје инваријанте.
    // Затварање је статички спречено да ради небезбедне ствари.
    несигурно {
    цалл_унсафе_фн_птр(|| {
    дбг!();
    });
    }
    }

  • Додата могућност позивања дбг!() макроа без аргумената.
    Ако проследите неки израз овом макроу, макро ће одштампати свој резултат. Пример:
    фн маин() {
    нека мут к = 0;

    иф дбг!(к == 1) {
    к += 1;
    }

    дбг!(к);
    }

    Када покренете овај код видећете:
    [срц/маин.рс:4] к == 1 = нетачно
    [срц/маин.рс:8] к = 0

    Сада можете писати овако:
    фн маин() {
    нека услов = истина;

    ако услов {
    дбг!();
    }
    }

    Када покренете овај код видећете:
    [срц/маин.рс:5]

  • Неки делови стандардне библиотеке су стабилизовани
    • Нове методе за ф32 и ф64:
      • ф32::цописигн
      • ф64::цописигн

      У ствари, функције копирају знак другог броја. Пример:
      фн маин() {
      ассерт_ек!(3.5_ф32.цописигн(-0.42), -3.5);
      }

    • Додате нове методе за типове опсега
      • Опсег::садржи
      • РангеФром::цонтаинс
      • РангеТо::цонтаинс
      • РангеИнцлусиве::садржи
      • РангеТоИнцлусиве::садржи

      Помоћу ових метода можете лако да проверите да ли је одређена вредност у низу:
      фн маин() {
      иф (0..=10).цонтаинс(&5) {
      принтлн!("Пет је укључено у нула до десет.");
      }
      }

    • Можете пронаћи комплетну листу стабилизованих АПИ-ја овде
  • У овом ажурирању, Цлиппи (ово је програм који проверава ваш код на много грешака) је додао нову проверу за дроп_боундс. Ова провера функционише када поставите ограничење: Т: Испусти - за генерализоване функције:
    фн фоо (к:Т){}

    Имати Т: Ограничење испуштања је најчешће грешка, јер су неки типови одмах искључени, као што је у8. (Можете прочитати више о овоме овде)

  • Много побољшања и поправки у Царго-у (менаџер језичких пакета), пуну листу измена

Извор: линук.орг.ру

Купите поуздан хостинг за сајтове са ДДоС заштитом, ВПС ВДС сервере 🔥 Купите поуздан веб хостинг са DDoS заштитом, VPS VDS сервере | ProHoster