Ինչպե՞ս կարող եք աշխատել տողերով Go լեզվում։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում տողերը անփոփոխ հաջորդականություններ են բայթների:
Հիմնական եղանակները տողերով աշխատելու համար՝
-
Ստեղծում:
// Տողային լիտերալ s1 := "Hello, Go!" // Բայթների զանգվածից byteArray := []byte{'H', 'e', 'l', 'l', 'o'} s2 := string(byteArray) -
Կոնկատենացիա:
s3 := "World" result := s1 + " " + s3 // Օգտագործելով + օպերատորըՄեծ քանակությամբ կոնկատենացիայի համար ավելի արդյունավետ է օգտագործել
strings.Builder:import "strings" var sb strings.Builder sb.WriteString("Hello") sb.WriteString(", ") sb.WriteString("World!") result2 := sb.String() -
Երկարություն:
- Բայթերով:
byteLength := len(s1) - Նշաններով (ռուներով):
runeLength := utf8.RuneCountInString(s1) // Պահանջում է ներմուծել "unicode/utf8"
- Բայթերով:
-
Մուտք գործել նշաններ (ռուներ) և կրկնություն: Go- ի տողերը բաղկացած են բայթներից, բայց
range- ի միջոցով նրանք դեկոդավորվում են ռուներ (Unicode- ի կոդային կետեր):import "fmt" for index, runeValue := range s1 { fmt.Printf("Իндекс: %d, Ռունա: %c, Տիպ: %T\n", index, runeValue, runeValue) }Միջնորդ մուտք գործել ըստ ինդեքսի վերադարձնում է բայթ, ոչ ռուն:
b := s1[0] // Վերադարձնում է բայթ 'H' -
Տվյալների փոխարկում:
- Բայթների զանգվածին:
byteSlice := []byte(s1) - Ռուների զանգվածին:
runeSlice := []rune(s1)
- Բայթների զանգվածին:
-
stringsփաթեթը: Պահպանում է բազմաթիվ օգտակար ֆունկցիաներ տողերով աշխատելու համար:strings.Contains(s, substr): Ստուգում է ենթատող առկայությունը:strings.HasPrefix(s, prefix): Ստուգում է, արդյոք տողը սկսվում է նշված նախածանցով:strings.HasSuffix(s, suffix): Ստուգում է, արդյոք տողը ավարտվում է նշված վերջածանցով:strings.Index(s, substr): Որոնում է առաջին հանդիպումը ենթատողում:strings.ReplaceAll(s, old, new): Փոխարինում է բոլոր հանդիպումները ենթատողում:strings.Split(s, sep): Բաժանում է տողը բաժանարարով:strings.Join(a []string, sep string): Միավորում է տողերի զանգվածը բաժանարարով:strings.ToLower(s): Փոխում է փոքրատառեր:strings.ToUpper(s): Փոխում է մեծատառեր:strings.TrimSpace(s): Հեռացնում է սպիտակ նշանները սկզբից և վերջից:
-
fmtփաթեթը: Օգտագործվում է ձևաչափված արտածման և կարդալու համար: -
strconvփաթեթը: Օգտագործվում է տողերի փոխարկման համար թվային տիպերի և հակառակը:import "strconv" i, err := strconv.Atoi("123") // Տողից դեպի ամբողջ թիվ s := strconv.Itoa(i) // Ամբողջ թիվից դեպի տող
Տողերի անփոփոխությունը կարևոր է և նշանակում է, որ ցանկացած գործողություն, որը թվում է որպես տողի փոփոխում (օրինակ, կոնկատենացիա կամ Replace), իրականում ստեղծում է նոր տող: