当前位置: 首页 > 知识库问答 >
问题:

rust - 这段代码怎么编译通过?

伯洋
2024-01-08
fn sum<T>(array: &[T]) -> T {     let mut sum: T = 0;     for i in array {       sum = sum + i;     }     return sum;  }

大概功能就是计算一个数组内的元素的和,怎么约束 T 让这段程序编译通过

共有2个答案

臧友樵
2024-01-08
use std::ops::Add;fn sum<T: Add<Output = T> + Default + Copy>(array: &[T]) -> T {    let mut sum: T = T::default();    for i in array {        sum = sum + *i;    }    return sum;}fn main() {    let array = [7, 2, 3, 4, 12];    println!("Result: {}", sum(&array))    // Result: 28}
公西修文
2024-01-08
use std::ops::Add;fn sum<T>(array: &[T])-> T  where  T: Add<Output = T> + Copy + Default,{  let mut sum: T = Default::default();  for i in array {    sum = sum + *i;  }  sum}
 类似资料:
  • 在方法或类范围内,下面的行编译(带有警告): 在类作用域中,变量获取其默认值,以下给出未定义引用错误: 这难道不是第一个应该以相同的未定义引用错误结束吗?或者第二行应该编译?或者我错过了什么?

  • 问题内容: 因此,我刚刚意识到反编译Java代码是多么容易。我一直在网上搜索,但似乎无法弄清楚 为什么 这么容易。每次我在Google上搜索“为什么要反编译文件?”之类的信息时,或“为什么Java这么容易反编译”,我所得到的只是指向可以轻松反编译我的代码的软件的链接。因此,我向您介绍StackOverflow:为什么Java可以转换回容易阅读的源代码,而C ++和其他语言对反编译不是很友好? 谢谢

  • 问题内容: 我的pom文件列表 然而,我得到 是(点在这里) 也指向正确的Java版本 在这台机器上,我正在使用(return ) 在我的中,我定义了: 在运行时,我发现实际上我在使用Java 6 在哪里可以定义?我的.zshrc有多次source(d)。 问题答案: 检查您的maven安装中的脚本,以查看其如何构建命令。也许您或其他人在其中进行了硬编码而忘记了它。

  • 这是怎么回事?我不明白count()是如何既等于withCallback又有一个主体的;不知何故,它是在withCallback返回的dataframe上调用的,但我不明白语法。

  • 如果我把 nums 设置为 10000,那么每次都准确输出 20000。或者设置的值比 10000 要少时也能准确输出。如果我把 nums 设置为 100000,那么每次输出的值都好像是随机的,范围在 100000 到 200000 之间。 如果是因为线程之间执行顺序的问题导致输出不确定,那为什么当值为 10000 时输出的值是比较确定的?

  • 各位好,我在get_block里 返回的是result 一个option和一个err,但是 在下面调取的时候,match result {} 我定一个ok 和 err报错,提示result的类型是个Option<BlockAndNumber> 理论上应该是result才对,想问我的代码哪里有问题,新手rust,还请各位多多帮助 这段代码有什么问题,怎么改