Satrlar
Go dasturlash tilida satr (string) — bu belgilar (harflar, raqamlar, belgilar) ketma-ketligidir. Masalan, "Golang" satri G, o, l, a, n, g belgilaridan tashkil topgan.
Goda satrlar qo'shtirnoq "" yoki teskari tirnoq (backtick) ` ichida yoziladi.
// var yordamida
var message1 = "Salom"
// Qisqa e'lon qilish yordamida
message2 := "Go Dasturchi"
`) bilan yozish:Teskari tirnoq bir nechta qatorli matnlarni yoki maxsus belgilarni o'zgarishsiz saqlashda qulay:
package main
import "fmt"
func main() {
message := `Go dasturlash tilini
o'rganish juda qiziqarli!`
fmt.Println(message)
}
Satr indekslari massivlar kabi 0 dan boshlanadi:
package main
import "fmt"
func main() {
name := "Golang"
// 0-indeksdagi belgi (G)
fmt.Printf("%c\n", name[0])
// 3-indeksdagi belgi (a)
fmt.Printf("%c\n", name[3])
// Oxirgi belgi (g)
fmt.Printf("%c\n", name[5])
}
Natija:
G
a
g
[!NOTE] Belgini to'g'ri ko'rsatish uchun
fmt.Printfbilan%cformat spetsifikatoridan foydalandik. Agarfmt.Println(name[0])deb yozilsa, uning baytdagi ASCII son qiymati (masalan,71) chiqadi.
Eslab qoling, satr indeksi doim 0 dan boshlanadi, 1 dan emas.

len())Satrdagi belgilar (baytlar) sonini aniqlash uchun len() funksiyasi ishlatiladi:
package main
import "fmt"
func main() {
message := "Go Dasturchi"
fmt.Println("Satr uzunligi:", len(message))
}
Natija:
Satr uzunligi: 12
+ operatori)Ikki yoki undan ortiq satrni birlashtirish (konkatenatsiya) uchun + operatoridan foydalanish mumkin:
package main
import "fmt"
func main() {
message1 := "Men"
message2 := "Go tilini o'rganayapman"
result := message1 + " " + message2
fmt.Println(result)
}
Natija:
Men Go tilini o'rganayapman
strings paketi va uning asosiy funksiyalariGoning standart strings paketi satrlar bilan ishlash uchun ko'plab foydali metodlarni taqdim etadi. Ulardan foydalanish uchun kod boshida import "strings" yoziladi:
strings.Compare() — Satrlarni solishtirishIkki satrni leksikografik (alifbo bo'yicha) solishtiradi:
-1: Birinchi satr ikkinchisidan kichik bo'lsa0: Satrlar teng bo'lsa1: Birinchi satr ikkinchisidan katta bo'lsapackage main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Compare("Olma", "Olxo'ri")) // -1
fmt.Println(strings.Compare("Olma", "Olma")) // 0
fmt.Println(strings.Compare("Uzum", "Anor")) // 1
}
strings.Contains() — Qism-satr mavjudligini tekshirishSatr ichida berilgan so'z yoki belgi bor-yo'qligini aniqlaydi (true yoki false):
package main
import (
"fmt"
"strings"
)
func main() {
text := "Go Programming"
fmt.Println(strings.Contains(text, "Go")) // true
fmt.Println(strings.Contains(text, "Python")) // false
}
strings.Replace() — Belgini almashtirishstrings.Replace(satr, eski, yangi, almashtirish_soni)
package main
import (
"fmt"
"strings"
)
func main() {
text := "mashina"
// Faqat 1 marta 'a' harfini 'o' ga almashtiramiz
result := strings.Replace(text, "a", "o", 1)
fmt.Println(result) // moshina
}
strings.ToUpper() va strings.ToLower() — Harflar registrini o'zgartirishpackage main
import (
"fmt"
"strings"
)
func main() {
text := "Go Dasturlash Tili"
fmt.Println(strings.ToUpper(text)) // GO DASTURLASH TILI
fmt.Println(strings.ToLower(text)) // go dasturlash tili
}
strings.Split() — Satrni bo'laklarga ajratishSatrni ko'rsatilgan ajratuvchi bo'yicha bo'laklab, slays (slice) ko'rinishida qaytaradi:
package main
import (
"fmt"
"strings"
)
func main() {
message := "Men Go tilini yaxshi ko'raman"
words := strings.Split(message, " ")
fmt.Println(words) // [Men Go tilini yaxshi ko'raman]
}
strings.Join() — Slays elementlarini bitta satrga birlashtirishpackage main
import (
"fmt"
"strings"
)
func main() {
words := []string{"Go", "juda", "tez", "ishlaydi"}
sentence := strings.Join(words, " ")
fmt.Println(sentence) // Go juda tez ishlaydi
}
== operatori orqali tenglikka tekshirishSatrlarning aynan tengligini tekshirish uchun == operatori yetarli. Satrlar harf-katta kichikligiga sezgir (case-sensitive) hisoblanadi:
package main
import "fmt"
func main() {
s1 := "Golang"
s2 := "golang"
fmt.Println(s1 == s2) // false
}
for range)for range sikli satrning har bir belgisi (rune) bo'yicha aylanib chiqadi:
package main
import "fmt"
func main() {
text := "Go"
for _, ch := range text {
fmt.Printf("%c\n", ch)
}
}
Natija:
G
o
Agar satr ichida qo'shtirnoq, yangi qator yoki tabulyatsiya ishlatish kerak bo'lsa, maxsus \ (teskari slesh) belgisidan foydalaniladi:
\" — qo'shtirnoq belgisining o'zi\n — yangi qatorga o'tish\t — tabulyatsiya (gorizontal bo'sh joy tashlash)\\ — teskari slesh belgisining o'zipackage main
import "fmt"
func main() {
message := "Bu dars \"Go Satrlar\" haqida.\nKeyingi qatordan davom etadi."
fmt.Println(message)
}
Go dasturlash tilida satrlar o'zgarmas (immutable) hisoblanadi. Ya'ni, yaratilgan satrning alohida belgilarini to'g'ridan-to'g'ri o'zgartirib bo'lmaydi:
message := "Salom"
message[0] = 'X' // XATOLIK! Satr elementiga qiymat tayinlab bo'lmaydi
Agar satrga boshqa matn qo'shsak (message = message + " Dunyo"), Go asl satrni o'zgartirmaydi, balki xotirada mutlaqo yangi satr yaratib, uni message o'zgaruvchisiga o'zlashtiradi.