Size: a a a

2021 July 09

КН

Котяй Негодяй... in Rust Beginners
А как вот такое можно сократить?

let mut frequencies = [0u32; 16384];

for i in 0..=16384 - 1 {
   frequencies[i as usize] = (i * sample_rate as u32) / (16384 * 2);
}
источник

П

Пух in Rust Beginners
(0..=16384).map.collect чонить такое
источник

П

Пух in Rust Beginners
Но это не в массив, с массивами я хз(
источник

А⚙

Антон ⚙️ in Rust Beginners
Для начала, константы надо именовать:

const LEN: usize = 16_384;

let mut frequencies = [0u32; LEN];

frequencies
   .iter_mut()
   .zip(0..)
   .for_each(|(val, i)| *val = i * sample_rate / (LEN * 2));
источник

КН

Котяй Негодяй... in Rust Beginners
Спасибо. =)
источник

YK

Yevhen Kazmin in Rust Beginners
.zip(0..) то же самое что .enumerate() ?
источник

YK

Yevhen Kazmin in Rust Beginners
Если не учитывать порядок элементов в результирующем тупле
источник

М

Михаил in Rust Beginners
почему библиотека не видит крейт postgres, пока его не подключишь дополнительно в бинарный крейт(тот, что содержит в себе main.rs)
источник

П

Пух in Rust Beginners
Как это выглядит
источник

М

Михаил in Rust Beginners
писал, что не мог найти крейт postgres, хотя давал обращаться к его модулям, перезапуск vs code помогло и теперь все ок
источник

М

Михаил in Rust Beginners
хотя природа такого поведения мне все еще не ясна)
источник

П

Пух in Rust Beginners
А крейт добавлял через вскод?
источник

П

Пух in Rust Beginners
Там в целом обычно помогает перезагрузка воркспейса у RA
источник

М

Михаил in Rust Beginners
ну да прописал в .toml и собрал проект, крейт добавился, если я правильно понял вопрос
источник

П

Пух in Rust Beginners
Тогда оно должно было само воркспейс перезапустить, хз(
источник

М

Михаил in Rust Beginners
2ой раз с этим сталкиваюсь и когда 1ый раз натолкнулся, просто добавил крейт в бинарный пакет, и в процессе экспериментов узнал, что это так работать не должно, но теперь знаю костыль, который это может исправить
источник

k

kitlhut0r in Rust Beginners
Какой самый распространенный способ создавать объекты во время выполнения?
источник

А⚙

Антон ⚙️ in Rust Beginners
Технически в Rust нет объектов. Уточните вопрос, пожалуйста
источник

k

kitlhut0r in Rust Beginners
Да я уже понял как решить
источник

КН

Котяй Негодяй... in Rust Beginners
IDE советует юзать в этом коде
for (i, gain) in self.gain_by_freq.iter().enumerate()

А я сомневаюсь — не выйдет ли это дороже за счёт создания доп промежуточных структур?

fn get_current_loudest_frequency_index(&mut self) -> usize {
   let mut last_gain = f32::MIN;
   let mut loudest_frequency_index = usize::MIN;
   let mut i = 0usize;

   for gain in &self.gain_by_freq {
       if gain > &last_gain {
           last_gain = *gain;
           loudest_frequency_index = i;
       }

       i += 1;
   }

   loudest_frequency_index
}
источник