如何在Rust中执行一个已实现的方法?

6rvt4ljy  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(100)

我无法执行在解决方案实现中实现的名称为two_sum的方法。
我想知道如何从main执行two_sum方法。
我的源代码在这里。

impl Solution {
    pub fn two_sum(num: i32) -> i32 {
        num + 1
    }
}

fn main() {
    let result = Solution::two_sum(1);
    println!("{:?}", result);
}

错误信息

failed to resolve: use of undeclared type Solution
use of undeclared type Solution
ycggw6v2

ycggw6v21#

首先,你的two_sum是一个关联函数,而不是一个方法;其次,它与 nothing 关联, -你没有声明一个名为Solution的类型(你至少需要写struct Solution;);第三,你不需要写Debugi32,所以我们将用{}替换{:?}

struct Solution;

impl Solution {
    pub fn two_sum(num: i32) -> i32 {
        num + 1
    }
}

fn main() {
    let result = Solution::two_sum(1);
    println!("{}", result);
}

第四,创建类型只是为了编写函数是一个非常糟糕的做法。
那我们该怎么办?

fn two_sum(num: i32) -> i32 {
    num + 1
}

fn main() {
    let result = two_sum(1);
    println!("{}", result);
}

就是这样!我不知道你为什么叫它two_sum tho。

e4yzc0pl

e4yzc0pl2#

你需要定义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);
}

相关问题