watak golang ke array

WBOY
Lepaskan: 2023-05-12 20:34:35
asal
798 orang telah melayarinya

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:

  • Apakah jenis elemen tatasusunan aksara?
  • Berapa panjang susunan aksara?
  • Bagaimana untuk menukar rentetan kepada tatasusunan aksara?

Mari kita jelaskan satu persatu di bawah.

  1. Jenis elemen tatasusunan aksara

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
Salin selepas log masuk
  1. Panjang tatasusunan aksara

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)
Salin selepas log masuk
  1. Tukar rentetan kepada tatasusunan aksara

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类型的数组
Salin selepas log masuk

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)
}
Salin selepas log masuk

Hasil larian adalah seperti berikut:

[72 101 108 108 111 44 32 19990 30028]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan