From 1512fb00944288898e6dbf62e2b383a8cad010c8 Mon Sep 17 00:00:00 2001 From: Eli Bendersky Date: Tue, 16 May 2023 11:10:16 -0700 Subject: [PATCH] slices: tweak the recent changes for clarity and grammar --- examples/slices/slices.go | 12 ++++++++---- examples/slices/slices.hash | 4 ++-- examples/slices/slices.sh | 4 ++-- public/slices | 20 ++++++++++++-------- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/examples/slices/slices.go b/examples/slices/slices.go index 08916ef..07343d6 100644 --- a/examples/slices/slices.go +++ b/examples/slices/slices.go @@ -9,15 +9,19 @@ func main() { // Unlike arrays, slices are typed only by the // elements they contain (not the number of elements). - // unassigned slice equal to nil and has a length of `0` + // An uninitialized slice equals to nil and has + // length 0. var s []string - fmt.Println("unassigned:", s, s == nil, len(s) == 0) + fmt.Println("uninit:", s, s == nil, len(s) == 0) // To create an empty slice with non-zero length, use // the builtin `make`. Here we make a slice of // `string`s of length `3` (initially zero-valued). - // `string`s of capacity `5`. - s = make([]string, 3, 5) + // By default a new slice's capacity is equal to its + // length; if we know the slice is going to grow ahead + // of time, it's possible to pass a capacity explicitly + // as an additional parameter ot `make`. + s = make([]string, 3) fmt.Println("emp:", s, "len:", len(s), "cap:", cap(s)) // We can set and get just like with arrays. diff --git a/examples/slices/slices.hash b/examples/slices/slices.hash index 5844a3d..163b77f 100644 --- a/examples/slices/slices.hash +++ b/examples/slices/slices.hash @@ -1,2 +1,2 @@ -d255a550fe04d6a6d31c7256a1d980e675db0619 -ryiklDqjbId +cbb10033e4e5d2f26e4b57895313a907072a75d9 +bqMChdRGpcl diff --git a/examples/slices/slices.sh b/examples/slices/slices.sh index 925ed82..8f5d1d4 100644 --- a/examples/slices/slices.sh +++ b/examples/slices/slices.sh @@ -1,8 +1,8 @@ # Note that while slices are different types than arrays, # they are rendered similarly by `fmt.Println`. $ go run slices.go -unassigned: [] true true -emp: [ ] len: 3 cap: 5 +uninit: [] true true +emp: [ ] len: 3 cap: 3 set: [a b c] get: c len: 3 diff --git a/public/slices b/public/slices index a6efec5..26a256d 100644 --- a/public/slices +++ b/public/slices @@ -42,7 +42,7 @@ a more powerful interface to sequences than arrays.

- +
package main
 
@@ -74,14 +74,15 @@ a more powerful interface to sequences than arrays.

Unlike arrays, slices are typed only by the elements they contain (not the number of elements). -unassigned slice equal to nil and has a length of 0

+An uninitialized slice equals to nil and has +length 0.

     var s []string
-    fmt.Println("unassigned:", s, s == nil, len(s) == 0)
+    fmt.Println("uninit:", s, s == nil, len(s) == 0)
 
@@ -91,13 +92,16 @@ unassigned slice equal to nil and has a length of 0

To create an empty slice with non-zero length, use the builtin make. Here we make a slice of strings of length 3 (initially zero-valued). -strings of capacity 5.

+By default a new slice’s capacity is equal to its +length; if we know the slice is going to grow ahead +of time, it’s possible to pass a capacity explicitly +as an additional parameter ot make.

-    s = make([]string, 3, 5)
+    s = make([]string, 3)
     fmt.Println("emp:", s, "len:", len(s), "cap:", cap(s))
 
@@ -267,8 +271,8 @@ they are rendered similarly by fmt.Println.

 $ go run slices.go
-unassigned: [] true true
-emp: [  ] len: 3 cap: 5
+uninit: [] true true
+emp: [  ] len: 3 cap: 3
 set: [a b c]
 get: c
 len: 3
@@ -322,7 +326,7 @@ Go’s other key builtin data structure: maps.