Stringjet
Një string është sekuencë karakteresh e gjatësisë së caktuar që përdoret për ruajtjen e tekstit. Go ofron suport për karakteret Unicode, me çka mundësohet përdorimi i shkronjave të alfabeteve të ndryshme si dhe shenjave të shumta speciale.
Një string vendoset ndërmjet thonjëzave apo shenjave backtick (`):
“Hello, World”
`Hello,
World`
Nëse stringu vendoset brenda thonjëzave, stringu nuk mund të përmbajë rreshta të rinj (newlines) ndërsa special escape sequences janë të lejuara.
Shenja \n zëvendësohet me newline ndërsa \t me tabulator.
Nëse stringu vendoset brenda backticks, stringun mund ta ndajmë në disa rreshta.
Karaktereve individuale të stringut mund t’iu qasemi sikur të ishte varg, duke përdorur indeksin.
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8 a := "Golang"
9 fmt.Println(a[0])
10 fmt.Println(string(a[0]))
11 }
https://play.golang.org/p/W8Fbgr2NLKK
Rezultati:
71
G
Si rezultat i fmt.Println(a[0]) fitohet kodi i karakterit të parë (indeksi 0) e që është 71. Me anë të funksionit string() mund ta konvertojmë në karakter (G).
Mund t’iu qasemi edhe një sekuence të karakterëve duke e cekur numrin e karakterëve të dëshiruar.
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8 a := "Golang"
9 fmt.Println(a[0:3])
10 }
https://play.golang.org/p/9I_gQlAwJw1
Rezultati:
Gol
Me a[0:3] kemi kërkuar 3 karakteret e njëpasnjëshëm duke filluar nga karakteri i parë [0], pastaj [1], pastaj [2], duke mos e përfshirë indeksin e fundit [3]. Në Go, kur ceket një diapazon i indekseve, nuk merret përfshihet indeksi i fundit, por përfshirja bëhet prej indeksit të cekur fillestar deri te ai i parafundit.
Vërejmë se në këtë rast fitojmë stringun “Gol” dhe jo kodet e karakterëve, pra nuk kemi nevojë të bëjmë konvertim eksplicit me funksionin string().
Karaktereve individualë mund t’iu qasemi edhe me strukturën for-range:
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8 a := "Golang"
9
10 // Mënyra 1
11 // i -> indeksi, a[i] -> kodi i karakterit, string(a[i]) -> karakteri
12
13 for i := range a {
14 fmt.Println(i, a[i], string(a[i]))
15 }
16
17 // Mënyra 2
18 // i -> indeksi, c -> kodi i karakterit, string(c) -> karakteri
19
20 for i, c := range a {
21 fmt.Println(i, c, string(c))
22 }
23 }
https://play.golang.org/p/shIDT8i9w4W
Rezultati:
0 71 G
1 111 o
2 108 l
3 97 a
4 110 n
5 103 g
0 71 G
1 111 o
2 108 l
3 97 a
4 110 n
5 103 g
Karakteristikë e stringjeve në Go është se janë immutable, gjegjësisht nuk mund t’iu ndryshohet përmbajtja, pra nuk mund ta ndryshojmë drejtpërsëdrejti ndonjë karakter apo sekuencë të karaktereve të stringut .
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8 a := "Golang"
9
10 fmt.Println(string(a[4]))
11 a[4] = "m"
12 }
https://play.golang.org/p/j1bLHKiHiQt
Rezultati:
./prog.go:11:7: cannot assign to a[4]
Pra, kur kemi tentuar ta ndryshojmë karakterin e pestë (indeksi 4), lajmërohet gabimi cannot assign to a[4].
Bashkangjitja e stringjeve (string concationation) kryhet me operatorin +.
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8 a := "Golang"
9 fmt.Println(a)
10
11 b := a + " programming"
12 fmt.Println(b)
13
14 b += " book"
15 fmt.Println(b)
16 }
https://play.golang.org/p/ZqRiAmTl7Mc
Rezultati:
Golang
Golang programming
Golang programming book
Funksionet
len()
Tregon numrin e karaktereve që i përmban një string.
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8 a := "Golang"
9 fmt.Println(len(a))
10 }
https://play.golang.org/p/oUCmOQW7M5L
Rezultati:
6
string()
E konverton kodin e karakterit në karakter.
1 package main
2
3 import (
4 "fmt"
5 )
6
7 func main() {
8 a := "P"
9 fmt.Println(a[0])
10 fmt.Println(string(a[0]))
11 }
https://play.golang.org/p/G-gGIV08wU1
Rezultati:
80
P