Rust | Что является лучшей практикой: использование фигурных скобок против использования круглых скобок вокруг выражения?

#rust

#Ржавчина

Вопрос:

В Rust вы можете написать цикл foreach следующим образом:

 (0..arr.len()).for_each(|i| { // parens
  println!("Item: {}", arr[i]);
})
 

или вот так:

 { 0..arr.len() }.for_each(|i| { // braces
  println!("Item: {}", arr[i]);
})
 

Я знаю, что это не самый умный вопрос, но какой из них правильный? Какая практика лучше?

Комментарии:

1. Обычно parethesis afik. Обратите внимание, что с помощью фигурных скобок вы создаете область видимости, которая в большинстве случаев вам не понадобится. Но люди здесь поправят меня, если я ошибаюсь.

Ответ №1:

Во-первых, использование круглых скобок более идиоматично.

Вы просто указываете приоритет оператора, поэтому for_each он вызывается для Range созданного .. оператором, а не on arr.len() . Это одна из основных функций круглых скобок.

Подход с фигурными скобками создает новое блочное выражение, которое может содержать несколько операторов. Значение последнего оператора становится значением блока. Он также выполняет свою работу и, вероятно, компилируется до того же машинного кода, но в данном случае это определенно немного необычно.