小编luc*_*ian的帖子

是否有可能在Rust中返回借用或拥有的类型?

在下面的代码中,如何返回引用floor而不是新对象?是否可以让函数返回借用的引用或拥有的值?

extern crate num; // 0.2.0

use num::bigint::BigInt;

fn cal(a: BigInt, b: BigInt, floor: &BigInt) -> BigInt {
    let c: BigInt = a - b;
    if c.ge(floor) {
        c
    } else {
        floor.clone()
    }
}
Run Code Online (Sandbox Code Playgroud)

ownership rust

11
推荐指数
1
解决办法
1138
查看次数

如何在haskell的"case of"中输入

我想向下转换类型(从C到A),但在示例中失败了:

data A = One Int
data B = Two Int
fa::A -> Int
fa a = 1

data C = A | B

f::C -> Int
f c = case c of
          A -> fa (c::A)
          _ -> 0
Run Code Online (Sandbox Code Playgroud)

错误消息是:

Couldn't match expected type ‘A’ with actual type ‘C’
In the first argument of ‘fa’, namely ‘(c :: A)’
In the expression: fa (c :: A)
Run Code Online (Sandbox Code Playgroud)

我怎么能正确地做到这一点?非常感谢!

haskell

0
推荐指数
1
解决办法
110
查看次数

标签 统计

haskell ×1

ownership ×1

rust ×1