guide: minor copy edits
This commit is contained in:
parent
3900c089a1
commit
0c040b07f0
4 changed files with 14 additions and 10 deletions
|
|
@ -47,7 +47,7 @@ This pattern is very powerful, and we'll see it repeated more later.
|
|||
|
||||
There are also a few things you can do with a tuple as a whole, without
|
||||
destructuring. You can assign one tuple into another, if they have the same
|
||||
contained types and arity. Tuples have the same arity when they have the same
|
||||
contained types and [arity]. Tuples have the same arity when they have the same
|
||||
length.
|
||||
|
||||
```rust
|
||||
|
|
@ -357,6 +357,7 @@ tool that will let us deconstruct this sum type (the type theory term for enums)
|
|||
in a very elegant way and avoid all these messy `if`/`else`s.
|
||||
|
||||
|
||||
[arity]: ./glossary.html#arity
|
||||
[match]: ./match.html
|
||||
[game]: ./guessing-game.html#comparing-guesses
|
||||
[generics]: ./generics.html
|
||||
|
|
|
|||
|
|
@ -40,14 +40,14 @@ us enforce that it can't leave the current thread.
|
|||
|
||||
### `Sync`
|
||||
|
||||
The second of these two trait is called [`Sync`](../std/marker/trait.Sync.html).
|
||||
The second of these traits is called [`Sync`](../std/marker/trait.Sync.html).
|
||||
When a type `T` implements `Sync`, it indicates to the compiler that something
|
||||
of this type has no possibility of introducing memory unsafety when used from
|
||||
multiple threads concurrently.
|
||||
|
||||
For example, sharing immutable data with an atomic reference count is
|
||||
threadsafe. Rust provides a type like this, `Arc<T>`, and it implements `Sync`,
|
||||
so that it could be safely shared between threads.
|
||||
so it is safe to share between threads.
|
||||
|
||||
These two traits allow you to use the type system to make strong guarantees
|
||||
about the properties of your code under concurrency. Before we demonstrate
|
||||
|
|
@ -69,7 +69,7 @@ fn main() {
|
|||
}
|
||||
```
|
||||
|
||||
The `Thread::scoped()` method accepts a closure, which is executed in a new
|
||||
The `thread::scoped()` method accepts a closure, which is executed in a new
|
||||
thread. It's called `scoped` because this thread returns a join guard:
|
||||
|
||||
```
|
||||
|
|
@ -208,10 +208,10 @@ Here's the error:
|
|||
|
||||
```text
|
||||
<anon>:11:9: 11:22 error: the trait `core::marker::Send` is not implemented for the type `std::sync::mutex::MutexGuard<'_, collections::vec::Vec<u32>>` [E0277]
|
||||
<anon>:11 Thread::spawn(move || {
|
||||
<anon>:11 thread::spawn(move || {
|
||||
^~~~~~~~~~~~~
|
||||
<anon>:11:9: 11:22 note: `std::sync::mutex::MutexGuard<'_, collections::vec::Vec<u32>>` cannot be sent between threads safely
|
||||
<anon>:11 Thread::spawn(move || {
|
||||
<anon>:11 thread::spawn(move || {
|
||||
^~~~~~~~~~~~~
|
||||
```
|
||||
|
||||
|
|
@ -322,7 +322,6 @@ While this channel is just sending a generic signal, we can send any data that
|
|||
is `Send` over the channel!
|
||||
|
||||
```
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::thread;
|
||||
use std::sync::mpsc;
|
||||
|
||||
|
|
|
|||
|
|
@ -430,7 +430,7 @@ fn main() {
|
|||
}
|
||||
```
|
||||
|
||||
But it is not idiomatic. This is significantly more likely to introducing a
|
||||
But it is not idiomatic. This is significantly more likely to introduce a
|
||||
naming conflict. In our short program, it's not a big deal, but as it grows, it
|
||||
becomes a problem. If we have conflicting names, Rust will give a compilation
|
||||
error. For example, if we made the `japanese` functions public, and tried to do
|
||||
|
|
|
|||
|
|
@ -115,8 +115,9 @@ doesn't work, so we're okay with that. In most cases, we would want to handle
|
|||
the error case explicitly. `expect()` allows us to give an error message if
|
||||
this crash happens.
|
||||
|
||||
We will cover the exact details of how all of this works later in the Guide.
|
||||
For now, this gives you enough of a basic understanding to work with.
|
||||
We will cover the exact details of how all of this works later in the Guide in
|
||||
[Error Handling]. For now, this gives you enough of a basic understanding to
|
||||
work with.
|
||||
|
||||
Back to the code we were working on! Here's a refresher:
|
||||
|
||||
|
|
@ -157,3 +158,6 @@ here.
|
|||
|
||||
That's all you need to get basic input from the standard input! It's not too
|
||||
complicated, but there are a number of small parts.
|
||||
|
||||
|
||||
[Error Handling]: ./error-handling.html
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue