小编ayu*_*har的帖子

Rust 的 Drop 和 C++ 的析构函数有什么区别?

在阅读有关该特征的过程中,我发现Rust 的方法和 C++ 中的析构函数Drop之间有很多相似之处。drop两者有什么区别?

c++ rust

4
推荐指数
1
解决办法
1348
查看次数

什么是 Grouped Flux 以及我们如何使用它?

我正在研究某个对象的 Flux 可以说Flux < MovieReservation >。这包含电影 id、名称、时间、标题等信息。所以我想提取有助于创建新
Flux < MovieShowDetail >. 我的意图是按电影 id 对所有保留进行分组,并将 Flux 分解为一组更小和多个 Flux(如果有的话,就是通量)。就像是

Flux {
   movie1 -> Flux<MovieShowDetail>
   movie2 -> Flux<MovieShowDetail>
   ... and so on
}
Run Code Online (Sandbox Code Playgroud)

所以我遇到了这个 groupBy 方法,它应该只做这样的事情。然而,文档确实没有内容,特别是关于如何迭代每部电影及其各自的 Flux。

此外,当我尝试通过尝试和错误来学习时,处理在 groupBy 方法之前的操作后停止。

我试过做

fluxOfSomething
.groupBy( movieReservation -> movieReservation.getMovieId ,
movieReservation -> movieReservation) 
Run Code Online (Sandbox Code Playgroud)

这样我就可以遍历每个通量并创建新的 MovieShowDetail 通量。但是,处理永远不会进入这个块。我尝试记录东西,但流程从未进入过它。

flux
    .map( movieSomething -> do something)
    .groupBy( movieReservation -> 
        movieReservation.getMovieId , movieReservation ->
    movieReservation)
    .subscribe("This text doesn't get printed");
Run Code Online (Sandbox Code Playgroud)

我真的需要尽可能多的信息。

java spring reactive-programming project-reactor spring-webflux

4
推荐指数
1
解决办法
3955
查看次数

Rust中的生命周期注释会更改变量的生命周期吗?

Rust 一章指出,注释不会篡改变量的生存期,但是这是真的吗?根据这本书,最长的函数接受两个字符串引用,然后返回更长的字符串。但是在错误情况下

fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
    if x.len() > y.len() {
        x
    } else {
        y
    }
}

fn main() {
    let string1 = String::from("long string is long");
    let result;
    {
        let string2 = String::from("xyz");
        result = longest(string1.as_str(), string2.as_str());
    }
    println!("The longest string is {}", result);
}
Run Code Online (Sandbox Code Playgroud)

它实际上会改变结果变量的生存期,不是吗?

我们已经告诉Rust,最长函数返回的引用的生存期与传入的引用的生存期较小者相同。

reference lifetime rust borrow-checker

3
推荐指数
2
解决办法
300
查看次数

当一个函数引用一个变量作为参数时,究竟将什么分配给该函数的堆栈?

我们在所有权中阅读了函数如何将其参数数据保留在堆栈中。在原始类型的情况下,这可能是一个值,或者是指向堆中驻留的数据的指针。现在,当引用某个东西时,该参数如何在堆栈中表示?

rust

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