小编Ale*_*mir的帖子

为什么Iterator :: take_while取得迭代器的所有权?

我觉得很奇怪,Iterator::take_while它取得了迭代器的所有权.这似乎是一个有用的功能,能够获取满足某些功能但仍保留原始迭代器中其余元素的前x个元素.

我知道这与懒惰的实现不兼容take_while,但仍然感觉很有用.这只是被认为不足以包含在标准库中,还是还有其他一些我没有看到的问题?

rust

13
推荐指数
2
解决办法
1889
查看次数

函数调用中的自动借用

我是 Rust 的新手,我有一个关于借用其参数的函数的问题。

在 C++ 中,函数的类型签名单独指定是否通过引用获取参数;调用该函数的代码不需要明确表明它正在传递一个引用。举个例子:

// The function signature indicates x should be passed by reference.
void increment(int& x) {
    ++x;
}
void main() {
    int y = 0;
    increment(y); // y is implicitly passed by reference
    // y is now 1
}
Run Code Online (Sandbox Code Playgroud)

另一方面,Rust 似乎不允许这样做。以下代码将无法编译:

fn output(x: &isize) {
    println!("{}", x);
}

fn main() {
    let y: isize = 0;
    output(y); // Error.
    // output(&y); <- this is ok though
}
Run Code Online (Sandbox Code Playgroud)

使用方法语法 through 时,如果函数签名采用&self&mut self则这些借用发生而调用方不使用 …

rust

6
推荐指数
1
解决办法
672
查看次数

榆树中未实现的存根

榆树有一个产生底部/发散的表达式,比如Haskell error或Rust's unimplemented!()吗?

例如

map : (a -> b) -> List a -> List b
map = unimplemented
Run Code Online (Sandbox Code Playgroud)

elm

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

将Elm表达式转换为字符串

有没有办法将Elm表达式转换为其代码的字符串表示形式?

例如

sourceString : a -> String

sourceString (1 + 3) == "(1 + 3)"
Run Code Online (Sandbox Code Playgroud)

我没有听说过榆树的宏,但也许仍然有办法做到这一点?

elm

2
推荐指数
1
解决办法
100
查看次数

标签 统计

elm ×2

rust ×2