小编mrL*_*LSD的帖子

递归函数计算因子导致堆栈溢出

我在Rust中尝试了一个递归因子算法.我使用这个版本的编译器:

rustc 1.12.0 (3191fbae9 2016-09-23)
cargo 0.13.0-nightly (109cb7c 2016-08-19)
Run Code Online (Sandbox Code Playgroud)

码:

extern crate num_bigint;
extern crate num_traits;

use num_bigint::{BigUint, ToBigUint};
use num_traits::One;

fn factorial(num: u64) -> BigUint {
    let current: BigUint = num.to_biguint().unwrap();
    if num <= 1 {
        return One::one();
    }
    return current * factorial(num - 1);
}

fn main() {
    let num: u64 = 100000;
    println!("Factorial {}! = {}", num, factorial(num))
}
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

$ cargo run

thread 'main' has overflowed its stack
fatal runtime error: stack overflow
error: Process didn't …
Run Code Online (Sandbox Code Playgroud)

biginteger bignum factorial rust

10
推荐指数
3
解决办法
6032
查看次数

使用kcov进行防锈覆盖似乎不正确

当我使用codecov.io记录我的Rust项目的代码覆盖率时,覆盖范围似乎不正确.

  1. 所述unwrap()功能和端托架未覆盖

    展开和末端支架未盖住

  2. 函数声明不包括在内

    功能声明未涵盖

这很奇怪.


我无法提供完整的复制项目.

我正在使用Rust的标准TravisCI配置.这是我的.travis.yml:

language: rust
cache: cargo
dist: trusty
sudo: required

rust:
  - stable
  - beta
  - nightly

matrix:
  allow_failures:
    - rust: nightly

script:
  - cargo build --verbose --all
  - cargo test --verbose --all

after_success: |
  wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz &&
  tar xzf master.tar.gz &&
  cd kcov-master &&
  mkdir build &&
  cd build &&
  cmake .. &&
  make &&
  make install DESTDIR=../../kcov-build &&
  cd ../.. &&
  rm -rf kcov-master &&
  for file in target/debug/myproject-*[^\.d]; do mkdir -p …
Run Code Online (Sandbox Code Playgroud)

rust kcov codecov

5
推荐指数
1
解决办法
392
查看次数

不能忽略在文档中编译示例代码的失败

我正在尝试为我的Rust库编写示例代码,但我不需要编译示例代码.

重现步骤:

  1. cargo new

  2. 将此添加到 src/lib.rs

    //! ## How to use
    //! Validator usage:
    //! ```ignore
    //! fn validate(values: &Map) -> ValidateResults {
    //!    ValidateResults(vec!(
    //!        Validator::<String>::new(btreemap! {
    //!            "requiered".to_string() => true.to_json(),
    //!            "vtype".to_string() => "string".to_json(),
    //!        }).validate("title".to_string(), values.find(&["pages", "title"]$
    //!
    //!        Validator::<bool>::new(btreemap! {
    //!            "default".to_string() => false.to_json(),
    //!        }).validate("published".to_string(), values.find(&["published"])$
    //!    ))
    //! }
    //! ```
    pub fn main() {
        println!("Hello, world!");
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. cargo test

我收到一个错误:

$ cargo test
    Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs
     Running …
Run Code Online (Sandbox Code Playgroud)

rust rust-cargo

3
推荐指数
1
解决办法
180
查看次数

标签 统计

rust ×3

biginteger ×1

bignum ×1

codecov ×1

factorial ×1

kcov ×1

rust-cargo ×1