Μια string στη Go είναι μια αμετάβλητη ακολουθία από bytes, τα οποία δεν χρειάζεται απαραίτητα να αναπαριστούν χαρακτήρες.
Ένα κυριολεκτικό συμβολοσειράς ορίζεται ανάμεσα σε διπλά εισαγωγικά:
const name = "Jane"
Οι συμβολοσειρές μπορούν να συνενωθούν με τον τελεστή +:
"Jane" + " " + "Austen"
// => "Jane Austen"
Ορισμένοι ειδικοί χαρακτήρες πρέπει να διαφύγουν με μια ανάστροφη κάθετο μπροστά, όπως το \t για ένα tab και το \n για μια νέα γραμμή μέσα σε συμβολοσειρές.
"How is the weather today?\nIt's sunny"
// =>
// How is the weather today?
// It's sunny
Το πακέτο strings περιέχει πολλές χρήσιμες συναρτήσεις για την εργασία με συμβολοσειρές.
Για περισσότερες πληροφορίες σχετικά με τις συναρτήσεις συμβολοσειρών, δες την τεκμηρίωση του πακέτου strings.
Ορίστε μερικά παραδείγματα:
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"
Όπως αναφέρθηκε προηγουμένως, ορισμένοι ειδικοί χαρακτήρες πρέπει να διαφύγουν με μια ανάστροφη κάθετο μπροστά. Παρακάτω υπάρχει ένας πιο αναλυτικός κατάλογος με το τι είναι αυτοί οι ειδικοί χαρακτήρες:
| Τιμή | Περιγραφή |
|---|---|
\a |
Συναγερμός ή κουδούνι |
\b |
Οπισθοχώρηση |
\\ |
Ανάστροφη κάθετος |
\t |
Οριζόντιο tab |
\n |
Αλλαγή γραμμής ή νέα γραμμή |
\f |
Αλλαγή σελίδας |
\r |
Επιστροφή φορείου |
\v |
Κατακόρυφο tab |
\' |
Μονό εισαγωγικό |
\" |
Διπλό εισαγωγικό |
fmt.Println("Joe\nWilliam\nJack\nAverell")
// Output:
// Joe
// William
// Jack
// Averell
Τα ακατέργαστα κυριολεκτικά συμβολοσειράς χρησιμοποιούν backticks (βαρείες) (\) ως οριοθέτη τους αντί για διπλά εισαγωγικά, και όλοι οι χαρακτήρες μέσα τους ερμηνεύονται κατά λέξη, που σημαίνει ότι δεν χρειάζεται διαφυγή χαρακτήρων ή αλλαγών γραμμής.
Αυτό είναι ένα παράδειγμα συμβολοσειράς πολλαπλών γραμμών:
const daltons = `Joe
William
Jack
Averell`
Αυτή η συμβολοσειρά έχει πολλές γραμμές.
Πιο συγκεκριμένα, έχει 3 \n.
Ωστόσο, επειδή πρόκειται για ένα ακατέργαστο κυριολεκτικό συμβολοσειράς, δεν χρειάζεται να βάλουμε το \n ρητά μέσα στη συμβολοσειρά.
Οι αλλαγές γραμμής θα ερμηνευτούν κατά λέξη.
Ορίστε μερικά ακόμα παραδείγματα που συγκρίνουν τα ακατέργαστα κυριολεκτικά συμβολοσειράς με τα κανονικά κυριολεκτικά συμβολοσειράς:
`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'