function - Rust 中的绝对值函数

标签 function macros rust absolute-value

在这个基本的 Rust 程序中,一个函数计算一个整数的绝对值,而 main() 帮助完成一个带有结果的语句:

fn main() {
    let value = abs(-4);
    println!("{}.", value);
}

fn abs(x: i32) -> i32 {
    print!("The abs value of {} is ", x);

    if x > 0 {
        return x;
    } else {
        -x
    }
}

有没有办法将整个语句“...的绝对值是...”正确打印到 abs() 函数中?我尝试使用

失败
println!("The abs value of {} is {} ", x, x);

这总是打印 x 参数的值(例如 -4、-4),所以它是不正确的。

println!("The abs value of {} is {} ", x, abs(x));

但在这里,出于某种原因,Rust 对递归不满意,在编译时发出警告,然后不运行程序。

最佳答案

绝对值法为already defined ;你不需要自己实现它

fn main() {
    let value = abs(-4);
    println!("{}.", value);
}

fn abs(x: i32) -> i32 {
    let val = x.abs();
    println!("The abs value of {} is {}", x, val);
    val
}

关于function - Rust 中的绝对值函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45902734/

相关文章:

c - getc() 作为宏和 C 标准库函数定义,连贯吗?

macros - ALET 宏和间接使用

c++ - 如何使用 Struct 打印我的交换函数

mysql - 将函数应用于 View 中的多列

c - 将随机元素分配给结构字段

c++ - 代码生成期间的宏替换

logging - 有没有办法以编程方式更改日志箱的默认日志记录级别?

rust - 使用 Rust FFI 时如何初始化不透明的 C 结构?

rust - 为什么 Rust 中的 Cell 只能用于 Copy 而不能用于 Clone 类型?

C++ 绑定(bind)返回类型模板参数