Kaedah rentas rentetan: 1. Gunakan pernyataan "untuk julat" untuk merentasi, sintaks ialah "untuk kunci, nilai := julat str {...}" 2. Gunakan fungsi Map() bagi pakej rentetan untuk melintasi , sintaksnya ialah "trings.Map(func(rune), original string)", dengan parameter "func(rune)" ialah fungsi panggil balik yang digunakan untuk memproses setiap aksara dalam rentetan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Kaedah untuk melintasi rentetan dalam bahasa go
Kaedah 1: Gunakan pernyataan untuk julat
Struktur julat ialah struktur lelaran unik bagi bahasa Go. Ia sangat berguna dalam banyak situasi untuk julat boleh merentasi tatasusunan, kepingan, rentetan, peta dan saluran adalah serupa dengan bahasa lain. Bentuk umum pernyataan foreach ialah:
for key, val := range coll { ... }
Perlu diambil perhatian bahawa val sentiasa merupakan salinan nilai indeks yang sepadan dalam koleksi, jadi ia secara amnya hanya mempunyai sifat baca sahaja, dan sebarang pengubahsuaian yang dibuat padanya Ia tidak akan menjejaskan nilai asal dalam koleksi. Rentetan ialah koleksi aksara yang dikodkan Unikod (atau rune), jadi ia juga boleh digunakan untuk mengulang rentetan:
for pos, char := range str { ... }
Setiap aksara rune dan indeks adalah satu demi satu dalam gelung julat untuk Sejajar, ia boleh mengenal pasti aksara berkod Unikod secara automatik mengikut peraturan UTF-8.
Kod berikut menunjukkan cara melintasi rentetan:
package main import ( "fmt" ) func main() { var str = "hello 你好" for key, value := range str { fmt.Printf("key:%d value:0x%x\n", key, value) } }
Keluaran kod adalah seperti berikut:
Pembolehubah dalam nilai kod , jenis sebenar ialah jenis rune, dan mencetaknya dalam perenambelasan ialah pengekodan aksara.
Kaedah 2: Gunakan strings.Map() function
Semasa proses pembangunan, banyak kali kita perlu memetakan setiap aksara dalam rentetan Untuk pemprosesan, dalam Perjalanan bahasa, fungsi strings.Map() disediakan untuk melaksanakan fungsi tersebut.
func Map(mapping func(rune) rune, s string) string
参数 | 描述 |
---|---|
mapping | 对字符串中每一个字符的处理函数。 |
s | 原字符串。 |
Nilai pulangan:
Mengembalikan rentetan yang diproses.
Penjelasan:
Peta setiap aksara dalam rentetan s. Pemetaan ialah fungsi tanpa nama yang menerima parameter jenis rune dan mengembalikan parameter jenis rune.
Contoh 1: Lintas rentetan dan alihkan setiap aksara rentetan ke belakang sedikit
package main import ( "fmt" "strings" ) func strEncry(r rune)rune{ return r+1 } func main() { //使用 strings.Map() 函数,实现将一个字符串中的每一个字符都后移一位 strHaiCoder := "HaiCoder" mapStr := strings.Map(strEncry, strHaiCoder) fmt.Println("mapStr =", mapStr) }
Analisis:
Kami mentakrifkan pembolehubah jenis rentetan strHaicoder, dan kemudian kami menggunakan rentetan.Map() fungsi rentetan untuk memproses setiap aksara rentetan menggunakan fungsi strEncry, dan menggunakan cetakan Cetak akhir hasil.
Fungsi strEncry melaksanakan fungsi menambah satu pada kod ASCII sesuatu aksara, iaitu, menggerakkan aksara itu ke belakang sedikit, jadi rentetan yang kita lalui ialah "HaiCoder", yang akhirnya menjadi "IbjDpefs".
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Bagaimana untuk melintasi rentetan dalam bahasa go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!