Использование powi при переборе элементов Vec - PullRequest
0 голосов
/ 05 октября 2018

Этот код работает правильно и выдает результат: 14:

fn main() {
    let v: i32 = vec![1, 2, 3].iter().map(|x| x * x).sum();
    println!("{}", v);
}

детская площадка

Я пытаюсь заменить x * x на powi(2), поэтому я попробовал оба варианта ниже, но ни один из них не работает:

let v1: i32 = vec![1, 2, 3].iter().map(|x| x.powi(2)).sum();
let v2: i32 = vec![1, 2, 3].iter().map(|&x| &x.powi(2)).sum();

Я также разместил это на форуме пользователя Rust .

1 Ответ

0 голосов
/ 06 октября 2018

В стандартной библиотеке powi реализован только для двух встроенных типов с плавающей запятой:

Если вы хотите применить степень к целочисленному типу, вы хотите использовать собственный метод pow (например, i32::pow):

let v: i32 = vec![1i32, 2, 3].iter().map(|x| x.pow(2)).sum();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...