From: Ralf Jung Date: Fri, 28 Apr 2023 13:43:48 +0000 (+0200) Subject: Merge pull request #41 from bzindovic/bzindovic-part13-clarity-fix X-Git-Url: https://git.ralfj.de/rust-101.git/commitdiff_plain/8eb07931e8a0427fd63cd2245602858881279a2c?hp=4f92e4d16fbdd96084a09567fc5f8e421c8b2351 Merge pull request #41 from bzindovic/bzindovic-part13-clarity-fix Fix grammar to improve clarity --- diff --git a/src/part01.rs b/src/part01.rs index a4537ac..e00cf53 100644 --- a/src/part01.rs +++ b/src/part01.rs @@ -87,7 +87,7 @@ impl NumberOrNothing { //@ methods on an `enum` (and also on `struct`, which we will learn about later) //@ is independent of the definition of the type. `self` is like `this` in other //@ languages, and its type is always implicit. So `print` is now a method that -//@ takes as first argument a `NumberOrNothing`, just like `print_number_or_nothing`. +//@ takes `NumberOrNothing` as the first argument, just like `print_number_or_nothing`. //@ //@ Try making `number_or_default` from above an inherent method as well! diff --git a/src/part04.rs b/src/part04.rs index 21654cd..2381ff4 100644 --- a/src/part04.rs +++ b/src/part04.rs @@ -106,7 +106,7 @@ fn shared_ref_demo() { //@ their official name. //@ As an example, consider a function which increments every element of a vector by 1. -//@ The type `&mut Vec` is the type of mutable references to `vec`. Because the reference +//@ The type `&mut Vec` is the type of mutable references to `Vec`. Because the reference //@ is mutable, we can use a mutable iterator, providing mutable references to the elements. fn vec_inc(v: &mut Vec) { for e in v.iter_mut() { diff --git a/src/part06.rs b/src/part06.rs index 939fe08..4c7ee24 100644 --- a/src/part06.rs +++ b/src/part06.rs @@ -127,8 +127,8 @@ fn head(v: &Vec) -> Option<&T> { //@ have aliasing (of `first` and `v`) and mutation. But this time, the bug is hidden behind the //@ call to `head`. How does Rust solve this? If we translate the code above to Rust, it doesn't //@ compile, so clearly we are good - but how and why? -//@ (Notice that have to explicitly assert using //@ `unwrap` that `first` is not `None`, whereas -//@ the C++ code above would silently dereference a //@ `NULL`-pointer. But that's another point.) +//@ (Notice that we use `unwrap` to explicitly assert that `first` is not `None`, whereas +//@ the C++ code above would silently dereference a `NULL`-pointer. But that's another point.) fn rust_foo(mut v: Vec) -> i32 { let first: Option<&i32> = head(&v); /* v.push(42); */