Rumah  >  Artikel  >  pembangunan bahagian belakang  >  watak golang ke array

watak golang ke array

WBOY
WBOYasal
2023-05-12 20:34:35748semak imbas

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
  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)
  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类型的数组

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!

Kenyataan:
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