gpt4 book ai didi

methods - 如果我不指定数字的类型,为什么 count_ones 不起作用?

转载 作者:行者123 更新时间:2023-11-29 07:48:14 25 4
gpt4 key购买 nike

为什么我需要为一个数字显式声明类型 i32 才能使用 count_ones在上面吗?

fn main() {
let x: i32 = 5;
println!("{}", x.count_ones());
}

如果我写 let x = 5; 我会得到一个错误 no method named 'count_ones found for type '{integer}' in the current scope。为什么它不能那样工作?

最佳答案

count_ones 方法不是由整数类型之间共享的特征提供的 - 它是为每个类型单独实现的。这意味着您需要指定类型,以便该方法适用于您要使用它的数字 - 编译器需要知道要使用哪种类型的实现。

此外,如果您想知道为什么在这种情况下编译器不知道没有指定类型的 let x = 5; 应该分配 i32(默认值整数类型)并使用它的 count_ones 实现,只是还不是编译阶段——默认类型在方法和函数名称解析后分配。

关于methods - 如果我不指定数字的类型,为什么 count_ones 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48991011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com