Код: Выделить всё
newfn main() {
let args: Vec = env::args().collect();
let config = Config::new(&args);
// --snip--
}
// --snip--
impl Config {
fn new(args: &[String]) -> Config {
let query = args[1].clone();
let file_path = args[2].clone();
Config { query, file_path }
}
}
< /code>
Имея немного опыта C ++, я знаю, что более эффективно обрабатывать сложные типы данных по ссылке (если комплексный тип больше, чем указатель). То есть, вызывающий контекст отвечает за настройку переменной и передает только адрес / справочник по его функции как так называемый параметр «Вывод » < / em>. Функция затем записывает данные непосредственно с переменной. Одним из аргументов для возврата по значению, поднятому в сообщении: < /p>
[Использование] Out Parameter является оптимизация производительности, которую вы, как программист, делаете вручную [.] < /P>
< /blockquote>
и < /p>
< /blockquote>
Этот другой вопрос, и этот пост Reddit также, кажется, также указывает на то, что нужно вернуться по значению, и компилятор будет иметь дело с его эффективным. Однако, насколько я знаю, это далеко не нормально, чтобы код C ++ возвращался по значению и ожидайте, что компилятор сделает его максимально эффективным. Есть ли правило, которое я, как программист, могу запомнить, чтобы узнать, когда возвращение по значению на 100 % штраф и будет оптимизирован? Если нет, я бы предпочел проглотить таблетку использования выходного параметра, чтобы быть уверенным, что мой код эффективен, что является нормой для программ C ++.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ic-in-rust
Мобильная версия