Merge pull request #41 from bzindovic/bzindovic-part13-clarity-fix
authorRalf Jung <post@ralfj.de>
Fri, 28 Apr 2023 13:43:48 +0000 (15:43 +0200)
committerGitHub <noreply@github.com>
Fri, 28 Apr 2023 13:43:48 +0000 (15:43 +0200)
Fix grammar to improve clarity

src/part01.rs
src/part04.rs
src/part06.rs

index a4537acbc18f05e621fc0b5d05cbbffd3bb7bfcd..e00cf536b397ae9eb73d5ca45758016c3fcae347 100644 (file)
@@ -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!
 
index 21654cd3cd46b827c71993408c989bc7a8301de5..2381ff4ed00a631618e342ee9abdd47d65253939 100644 (file)
@@ -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<i32>` is the type of mutable references to `vec<i32>`. Because the reference
+//@ The type `&mut Vec<i32>` is the type of mutable references to `Vec<i32>`. Because the reference
 //@ is mutable, we can use a mutable iterator, providing mutable references to the elements.
 fn vec_inc(v: &mut Vec<i32>) {
     for e in v.iter_mut() {
index 939fe081f8d601ad09b216bcb0f4990943159b36..4c7ee24fdeedfab73af6b88b05df989b37623297 100644 (file)
@@ -127,8 +127,8 @@ fn head<T>(v: &Vec<T>) -> 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>) -> i32 {
     let first: Option<&i32> = head(&v);
     /* v.push(42); */