rust - () 作为函数中的参数意味着什么,其中需要 T 类型的参数?

标签 rust

我是 Rust 的新手,我正在阅读 Dining Philosophers' tutorial当我发现这个时:

Mutex::new(())

我不知道 new 里面的参数是什么意思。我读了documentation for Mutex我仍然不知道这意味着什么。如果能解释一下幕后发生的事情,我将不胜感激。

最佳答案

()是空的 tuple , 也称为 unit type -- 没有成员类型的元组。它也是所述类型的唯一有效值。它有 a size of zero (请注意,它仍然是 Sized ,只是大小为 0),使其在运行时不存在。这有几个有用的效果,这里使用了其中之一。

在这里,()用于创建 Mutex没有拥有的数据——它只是一个可解锁和可锁定的互斥体。如果我们用 turbofish operator 显式写出类型推断::<> ,我们也可以这样写:

Mutex::<()>::new( () )

也就是说,我们正在创建一个 new Mutex包含 ()初始值为 () .

关于rust - () 作为函数中的参数意味着什么,其中需要 T 类型的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35546288/

相关文章:

rust - Future 和 Stream 嵌套有类型问题

rust - 如何忽略序列的部分项

rust - 为什么一些 std::fmt::Debug* 方法使用动态调度?

rust - 你能以某种方式将不安全的指针转换为 rust 中的拥有指针吗?

rust - 使用 web_sys 生成随机数数组

rust - 在适当的情况下自动转换所有标识符

rust - 如何用预定义的容量填充向量?

rust - 为什么在 Rust 中实现 C++ 信号和槽时会出​​现 "does not live long enough"错误?

operator-overloading - 如何在 Rust 中为值和引用实现惯用运算符重载?

rust - 用写!带有字符串而不是字符串文字的宏