diff --git a/examples/string-functions/string-functions.go b/examples/string-functions/string-functions.go index 6ac0d3d..eea809a 100644 --- a/examples/string-functions/string-functions.go +++ b/examples/string-functions/string-functions.go @@ -14,10 +14,12 @@ var p = fmt.Println func main() { // Here's a sample of the functions available in - // `strings`. Note that these are all functions from the - // package, not methods on the string object itself. - // This means that we need pass the string in question - // as the first argument to the function. + // `strings`. Since these are functions from the + // package, not methods on the string object itself, + // we need pass the string in question as the first + // argument to the function. You can find more + // functions in the [`strings`](http://golang.org/pkg/strings/) + // package docs. p("Contains: ", s.Contains("test", "es")) p("Count: ", s.Count("test", "t")) p("HasPrefix: ", s.HasPrefix("test", "te")) @@ -32,12 +34,16 @@ func main() { p("ToUpper: ", s.ToUpper("test")) p() - // You can find more functions in the [`strings`](http://golang.org/pkg/strings/) - // package docs. - - // Not part of `strings` but worth mentioning here are - // the mechanisms for getting the length of a string - // and getting a character by index. + // Not part of `strings`, but worth mentioning here, are + // the mechanisms for getting the length of a string in + // bytes and getting a byte by index. p("Len: ", len("hello")) p("Char:", "hello"[1]) } + +// Note that `len` and indexing above work at the byte level. +// Go uses UTF-8 encoded strings, so this is often useful +// as-is. If you're working with potentially multi-byte +// characters you'll want to use encoding-aware operations. +// See [strings, bytes, runes and characters in Go](https://blog.golang.org/strings) +// for more information. diff --git a/examples/string-functions/string-functions.hash b/examples/string-functions/string-functions.hash index c4a0d65..93ae1ea 100644 --- a/examples/string-functions/string-functions.hash +++ b/examples/string-functions/string-functions.hash @@ -1,2 +1,2 @@ -d7150ce50772abdaf827082093613134cb05e08f -Gkc5rDaeaN +17aa523bbd606fa0b624fae44b89812d46330755 +Lf5_Zbg6or diff --git a/public/string-functions b/public/string-functions index 8438e99..30b2914 100644 --- a/public/string-functions +++ b/public/string-functions @@ -41,7 +41,7 @@ to give you a sense of the package.
package main
Here’s a sample of the functions available in
-strings
. Note that these are all functions from the
-package, not methods on the string object itself.
-This means that we need pass the string in question
-as the first argument to the function.
strings
. Since these are functions from the
+package, not methods on the string object itself,
+we need pass the string in question as the first
+argument to the function. You can find more
+functions in the strings
+package docs.
You can find more functions in the strings
-package docs.
Not part of strings
, but worth mentioning here, are
+the mechanisms for getting the length of a string in
+bytes and getting a byte by index.
Not part of strings
but worth mentioning here are
-the mechanisms for getting the length of a string
-and getting a character by index.
p("Len: ", len("hello"))
p("Char:", "hello"[1])
@@ -145,6 +135,22 @@ and getting a character by index.
Note that len
and indexing above work at the byte level.
+Go uses UTF-8 encoded strings, so this is often useful
+as-is. If you’re working with potentially multi-byte
+characters you’ll want to use encoding-aware operations.
+See strings, bytes, runes and characters in Go
+for more information.