Golang ialah bahasa pengaturcaraan yang dilancarkan oleh Google Matlamat reka bentuknya adalah untuk meningkatkan kecekapan dan kebolehselenggaraan pembangunan perisian. Di Golang, aksara dan rentetan ialah dua jenis data yang berbeza, tetapi kita sering menghadapi keperluan untuk menukar rentetan kepada tatasusunan aksara. Artikel ini akan memperkenalkan cara menukar aksara kepada tatasusunan dalam Golang.
Di Golang, konsep aksara dan rentetan agak jelas. Aksara ialah titik kod Unicode dan menduduki 4 bait manakala rentetan ialah jujukan berbilang aksara, dikodkan menggunakan UTF-8, dan setiap aksara menduduki 1-4 bait. Oleh itu, apabila kita perlu menukar rentetan kepada tatasusunan aksara, kita perlu mempertimbangkan soalan berikut:
Mari kita jelaskan satu persatu di bawah.
Di Golang, jenis data aksara ialah rune, yang merupakan alias jenis int32. Oleh itu, apabila kita menentukan tatasusunan aksara, jenis elemennya hendaklah rune.
var arr []rune
Di Golang, anda boleh menggunakan fungsi len() untuk mendapatkan panjang rentetan, tetapi panjang rentetan tidak sama dengannya Bilangan aksara yang terkandung. Oleh kerana aksara Unicode mungkin terdiri daripada berbilang bait, panjang rentetan selalunya tidak sama dengan bilangan aksara yang terkandung di dalamnya. Untuk menukar rentetan dengan betul kepada tatasusunan aksara, kita harus menggunakan fungsi dalam pakej unicode/utf8 untuk mengira bilangan aksara yang terkandung dalam rentetan itu.
import "unicode/utf8" func countChars(s string) int { return utf8.RuneCountInString(s) } length := countChars("Hello, world!") arr := make([]rune, length)
Golang menyediakan dua fungsi untuk menukar rentetan kepada tatasusunan aksara: []rune() dan []bait() . Antaranya, []rune() menukar rentetan kepada tatasusunan jenis rune, setiap aksara menduduki 4 bait []bait() menukar rentetan kepada tatasusunan jenis bait, setiap aksara menduduki 1 bait, tetapi aksara yang bercelaru mungkin muncul; .
s := "Hello, 世界" arr := []rune(s) // 将字符串s转换成rune类型的数组
Kod lengkap adalah seperti berikut:
package main import ( "fmt" "unicode/utf8" ) func countChars(s string) int { return utf8.RuneCountInString(s) } func main() { s := "Hello, 世界" length := countChars(s) arr := make([]rune, length) for i, c := range s { arr[i] = c } fmt.Println(arr) }
Hasil larian adalah seperti berikut:
[72 101 108 108 111 44 32 19990 30028]
Melalui pengenalan artikel ini, kami memahami cara menukar rentetan menjadi susunan aksara dalam Golang . Ini berguna untuk bekerja dengan data teks dan melaksanakan algoritma pada rentetan.
Atas ialah kandungan terperinci watak golang ke array. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!