1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-03-20 22:36:03 +02:00

Recommend newtypes over type aliases (#2476)

I don't know how controversial this is, but I would recommend against
using type aliases where a newtype can be used instead.

Personally, I don't like type aliases much since I feel they cause extra
indirection: I will inevitably have to go look up the alias the first
many times I encounter it. Nothing will tell me to apply the type alias
consistently, and I dislike having multiple names for the same thing.

But I'm sure some people love them, so now I'm just gently reminding
people that newtypes can be a better alternative.
This commit is contained in:
Martin Geisler 2024-12-03 16:57:41 +01:00 committed by GitHub
parent c85816a01f
commit 45bb2de220
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -23,6 +23,10 @@ type PlayerInventory = RwLock<Vec<Arc<RefCell<Item>>>>;
<details>
C programmers will recognize this as similar to a `typedef`.
- A [newtype](tuple-structs.html) is often a better alternative since it creates
a distinct type. Prefer `struct InventoryCount(usize)` to
`type InventoryCount = usize`.
- C programmers will recognize this as similar to a `typedef`.
</details>