Rust调用Solution的two_sum方法报错:未声明类型Solution,求解决
问题解决:未声明Solution类型导致的编译错误
错误原因很直接:你只写了impl Solution来实现关联函数,但根本没定义Solution这个类型,Rust编译器不知道Solution是什么,所以报错。
解决方法很简单,先定义Solution类型就行,因为你的two_sum是不需要实例的关联函数,定义一个空结构体就够了:
// 先定义空的Solution结构体 struct Solution; impl Solution { pub fn two_sum(num: i32) -> i32 { num + 1 } } fn main() { let result = Solution::two_sum(1); println!("{:?}", result); // 运行后输出2 }
补充说明:Rust里的impl块必须依附于一个已存在的类型(结构体、枚举、trait等),如果只是想写一组工具函数,用空结构体来承载关联函数是很常见的写法;当然你也可以直接把two_sum写成普通函数,去掉Solution::前缀,但如果一定要保留原有的调用形式,上面的写法就能解决问题。
内容的提问来源于stack exchange,提问作者yuu Iri
相关产品推荐
相关产品推荐

