From charlesreid1

No edit summary
Line 38: Line 38:




===List of String Functions===
Here is a list of string functions that are available from the string package. These are static methods that operate on string input arguments, they are not methods of the string object itself.
<pre>
package main
import s "strings"
import "fmt"
var p = fmt.Println
func main() {
    p("Contains:  ", s.Contains("test", "es"))
    p("Count:    ", s.Count("test", "t"))
    p("HasPrefix: ", s.HasPrefix("test", "te"))
    p("HasSuffix: ", s.HasSuffix("test", "st"))
    p("Index:    ", s.Index("test", "e"))
    p("Join:      ", s.Join([]string{"a", "b"}, "-"))
    p("Repeat:    ", s.Repeat("a", 5))
    p("Replace:  ", s.Replace("foo", "o", "0", -1))
    p("Replace:  ", s.Replace("foo", "o", "0", 1))
    p("Split:    ", s.Split("a-b-c-d-e", "-"))
    p("ToLower:  ", s.ToLower("TEST"))
    p("ToUpper:  ", s.ToUpper("test"))
    p("Len: ", len("hello"))
}
</pre>


==String Slices==
==String Slices==

Revision as of 14:12, 13 December 2018

Related: Rosalind/Problem 1A

The Go blog: strings, bytes, runes, and characters in Go: https://blog.golang.org/strings

How strings work in Go

A string in Go is a read-only slice of bytes. A string can hold arbitrary bytes, it is not required to hold unicode/UTF-8/other format. That means that "characters" are not special types in Go; rather, strings refer to bytes.

Indexing a string does not access characters - it accesses the individual bytes. So, when you store a character value in a string, you are storing the byte representation of that character at that point in time.

String Functions

To use string functions, you need to import strings:

package main

import "strings"

func main() {
    fmt.Println(strings.ToUpper("Hello world!"))
}

The functions provided by the strings package will then be available via, for example, strings.ToUpper().

To make this a little easier, you can do something analogous to Python's import X as Y:

package main

import s "strings"

func main() {
    fmt.Println(s.ToUpper("Hello world!"))
}


List of String Functions

Here is a list of string functions that are available from the string package. These are static methods that operate on string input arguments, they are not methods of the string object itself.

package main

import s "strings"
import "fmt"

var p = fmt.Println
	
func main() {
    p("Contains:  ", s.Contains("test", "es"))
    p("Count:     ", s.Count("test", "t"))
    p("HasPrefix: ", s.HasPrefix("test", "te"))
    p("HasSuffix: ", s.HasSuffix("test", "st"))
    p("Index:     ", s.Index("test", "e"))
    p("Join:      ", s.Join([]string{"a", "b"}, "-"))
    p("Repeat:    ", s.Repeat("a", 5))
    p("Replace:   ", s.Replace("foo", "o", "0", -1))
    p("Replace:   ", s.Replace("foo", "o", "0", 1))
    p("Split:     ", s.Split("a-b-c-d-e", "-"))
    p("ToLower:   ", s.ToLower("TEST"))
    p("ToUpper:   ", s.ToUpper("test"))
    p("Len: ", len("hello"))
}

String Slices

See the Go/Slices page for notes on how array slices work.

Flags