gpt4 book ai didi

rust - 如何在 Rust 中为函数添加状态

转载 作者:行者123 更新时间:2023-11-29 08:31:51 25 4
gpt4 key购买 nike

Rust 有带状态的匿名闭包。我可以对命名函数做同样的事情吗?

(无效的伪代码)

fn counting_function()->i32 {
let mut static counter = 0;
counter = counter + 1;
return counter.clone();
}

我知道我可以使用结构和函数/特征来做到这一点。而且我知道迭代器是正确的方法。但是抛开具有特征和迭代器的结构,我可以在不将任何负担(初始化结构)传递给调用者的情况下做到这一点吗?

最佳答案

这是一个使用原子的线程安全变体:

use std::sync::atomic::{AtomicUsize, Ordering};

fn counting_function() -> usize {
static COUNTER: AtomicUsize = AtomicUsize::new(0);
let result = COUNTER.fetch_add(1, Ordering::Relaxed);
result
}

但我会说这实际上是一种代码味道。

关于rust - 如何在 Rust 中为函数添加状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55893888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com