The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Rust 1.58"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Доступны два режима работы форума: "Раскрыть нити" и "Свернуть нити".
. "Выпуск языка программирования Rust 1.58" +1 +/
Сообщение от morphe (?), 15-Янв-22, 01:08 

До добавления этой штуки было только такое:

    format!("{}, {}, {}", "a", "b", "c")
    // Либо с явным указанием позиций аргументов
    format!("{1}, {2}, {3}", "a", "b", "c")

В случае если форматированная строка большая - то это было неудобно и запутанно, однако инфраструктура для макросов не позволяла реализовать полноценный захват из внешнего контекста (Не было нормальной гигиены для proc macro), поэтому передачу именованных аргументов сделали явной, и на месте:

    format!("{a}, {b}, {c}", a = "a", b = "b", c = "c")

Теперь же реализована возможность неявно захватывать внешние переменные

    let a = "a";
    format!("{a}");

Однако не всегда нам нужны такие переменные, если мы собираемся использовать лишь в макросе форматирования, поэтому во многих случаях остаётся полезен синтаксис со внутренней передачей именованных аргументов, нововведение помогает лишь в тех случаях, когда раньше приходилось писать a = a, b = b, c = c

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск языка программирования Rust 1.58, opennews, 14-Янв-22, 10:42  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру