A string a Go-ban bájtok megváltoztathatatlan sorozata, amelyek nem feltétlenül karaktereket ábrázolnak.
A string literált kettős idézőjelek közé írjuk:
const name = "Jane"
A stringek a + operátorral fűzhetők össze:
"Jane" + " " + "Austen"
// => "Jane Austen"
Néhány speciális karaktert egy kezdő visszaperjellel kell escape-elni, például a \t a tabulátort, a \n pedig az új sort jelöli a stringekben.
"How is the weather today?\nIt's sunny"
// =>
// How is the weather today?
// It's sunny
A strings csomag sok hasznos függvényt tartalmaz a stringekkel való munkához.
Ha többet szeretnél megtudni a stringfüggvényekről, nézd meg a strings csomag dokumentációját.
Íme néhány példa:
import "strings"
// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"
// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"
Ahogy korábban említettük, néhány speciális karaktert egy kezdő visszaperjellel kell escape-elni. Az alábbi lista részletesebben bemutatja, melyek ezek a speciális karakterek:
| Érték | Leírás |
|---|---|
\a |
Riasztás vagy csengő |
\b |
Visszatörlés |
\\ |
Visszaperjel |
\t |
Vízszintes tabulátor |
\n |
Soremelés vagy új sor |
\f |
Lapdobás |
\r |
Kocsivissza |
\v |
Függőleges tabulátor |
\' |
Egyszeres idézőjel |
\" |
Kettős idézőjel |
fmt.Println("Joe\nWilliam\nJack\nAverell")
// Output:
// Joe
// William
// Jack
// Averell
A nyers string literálok határolóként backticket (`) használnak a kettős idézőjelek helyett, és a bennük lévő összes karakter szó szerint értelmeződik, ami azt jelenti, hogy nem kell escape-elni a karaktereket vagy az új sorokat.
Íme egy példa egy többsoros stringre:
const daltons = `Joe
William
Jack
Averell`
Ennek a stringnek több sora van.
Pontosabban 3 \n-t tartalmaz.
Mivel azonban nyers string literálról van szó, nem kell a \n-t explicit módon a stringbe írnunk.
Az új sorok szó szerint értelmeződnek.
Íme néhány további példa, amely nyers string literálokat hasonlít össze hagyományos string literálokkal:
`abc`
// same as "abc"
"\"" // regular string literal with 1 character: a double quote
// same as `"` a raw string literal with 1 character: a double quote
`\n
` // raw string literal with 3 character: a backslash, an 'n', and a newline
// same as "\\n\n" a regular string literal with 3 characters: a backslash, an 'n', and a newline
"\t\n" // regular string literal with 2 characters: a tab and a newline
`\t\n`// raw string literal with 4 characters: two backslashes, a 't', and an 'n'