LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

let vec = vec![1, 2, 3, 4];
if let Some(v) = vec.iter().find(|i| *i % 2 == 0) {
println!(«{}», v);
}

По большому счету это напоминает попытку подсчитать синтаксический оверхед (с). Ничто не мешает на C++ записать так:

std::vector<int> v{ 1, 2, 3, 4 };
auto r = ranges::find_if( v, [](int i) { return i % 2 == 0; });
if( r != end(v) )
	fmt::print( "{}\n", *r );
Количество приседаний, которые нужно сделать в C++ и в Rust-е одинаково. И говорить о многословности C++ на основе того, что в C++ нужно писать template и typename там, где в Rust-е можно обойтись лишь угловыми скобочками — это прям детский сад какой-то. Тогда уж нужно сразу сравнивать double и f64.

Исходная версия eao197, :

let vec = vec![1, 2, 3, 4];
if let Some(v) = vec.iter().find(|i| *i % 2 == 0) {
println!(«{}», v);
}

По большому счету это напоминает попытку подсчитать синтаксический оверхед (с). Ничто не мешает на C++ записать так:

std::vector<int> v{ 1, 2, 3, 4 };
auto r = ranges::find_if( v, [](int i) { return i % 2 == 0; });
if( r != end(v) )
	fmt::print( "{}\n", *r );
Количество приседаний, которые нужно сделать в C++ и в Rust-е одинаково. И говорить о многословности C++ на основе того, что в C++ нужно писать template и typename там, где в Rust-е можно обойтись лишь угловыми скобочками — это прям детский сад какой-то. Тогда уж нужно сразу сравнивать double и f64.