可以在函数中定义如下 struct :

fn user_status() -> bool {
    struct UserStatus {
        logined: bool,
        name: Option<String>,
    }
    // ...
    true
}

这是一种对其他函数隐藏 struct 的好方法吗? struct 是在每次调用函数时定义的还是只创建一次?

推荐答案

我认为这是定义仅在函数中使用的类型的一种完全合理的方法.

类型在编译时定义;当调用函数时,在运行时不会进行"定义".

Rust相关问答推荐

如何在rust中有条件地分配变量?

为什么类型需要在这个代码中手动指定,在rust?

通过使用光标拖动角来绕其中心旋转矩形

在铁 rust 中传递所有权

将PathBuf转换为字符串

对于已经被认为是未定义行为的相同数据,纯粹存在`&;[u32]`和`&;mut[u32]`吗?

如果死 struct 实现了/派生了一些特征,为什么Rust会停止检测它们?

如何迭代属性以判断相等性?

为什么在 Allocator API 中 allocate() 使用 `[u8]` 而 deallocate 使用 `u8` ?

如何以与平台无关的方式将OsString转换为utf-8编码的字符串?

有什么方法可以通过使用生命周期来减轻嵌套生成器中的当生成器产生时borrow 可能仍在使用错误?

如何在 Rust 的 Hyper 异步闭包中从外部范围正确读取字符串值

如何在 Emacs Elisp 中获得类似格式化的 LSP?

如何创建递归borrow 其父/创建者的 struct ?

LinkedList::drain_filter::drop 中 DropGuard 的作用是什么?

SDL2 没有在终端键上触发?

当我在 struct 中存储异步函数时,为什么它需要生命周期

为什么我可以在没有生命周期问题的情况下内联调用 iter 和 collect?

如何制作具有关联类型的特征的类型擦除版本?

在传输不可复制的值时实现就地枚举修改