Funzioni Stringa

Esiste un numero notevole di funzioni di trattamento stringhe già inserite nellalibreria standard, nel package strings.

(440string-functions.go):

package main

import s "strings"
import "fmt"

// Alias della funzione per accorciare il codice
var p = fmt.Println

func main() {
	// Esempi di funzioni stringa
	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()
	// Altre funzioni sulle stringhe che non sono
	// parte del modulo strings
	p("Len: ", len("hello"))
	p("Char:", "hello"[1])
}

Notare che l'istruzione var p = fmt.Println è effettivamente una macro, cioè una sostituzione lessicale.

Anche la definizione di s come alias di string è una macro lessicale.