相关疑难解决方法(0)

使用泛型类型时如何使用整数文字?

我想实现一个函数来计算任何泛型类型的整数中的位数.这是我提出的代码:

extern crate num;
use num::Integer;

fn int_length<T: Integer>(mut x: T) -> u8 {
    if x == 0 {
        return 1;
    }

    let mut length = 0u8;
    if x < 0 {
        length += 1;
        x = -x;
    }

    while x > 0 {
        x /= 10;
        length += 1;
    }

    length
}

fn main() {
    println!("{}", int_length(45));
    println!("{}", int_length(-45));
}
Run Code Online (Sandbox Code Playgroud)

这是编译器输出

error[E0308]: mismatched types
 --> src/main.rs:5:13
  |
5 |     if x == 0 {
  |             ^ expected type parameter, …
Run Code Online (Sandbox Code Playgroud)

generics int traits rust

7
推荐指数
2
解决办法
1905
查看次数

使用泛型类型时如何使用浮点数文字?

常规浮点文字不起作用:

extern crate num_traits;

use num_traits::float::Float;

fn scale_float<T: Float>(x: T) -> T {
    x * 0.54
}

fn main() {
    let a: f64 = scale_float(1.23);
}
Run Code Online (Sandbox Code Playgroud)
extern crate num_traits;

use num_traits::float::Float;

fn scale_float<T: Float>(x: T) -> T {
    x * 0.54
}

fn main() {
    let a: f64 = scale_float(1.23);
}
Run Code Online (Sandbox Code Playgroud)

floating-point literals traits rust

7
推荐指数
1
解决办法
1756
查看次数

标签 统计

rust ×2

traits ×2

floating-point ×1

generics ×1

int ×1

literals ×1