Cosa sono le rune in Golang? Come usare le Rune in Golang? L'articolo vi darà la risposta.

In passato avevamo un solo set di caratteri, chiamato ASCII (American Standard Code for Information Interchange). Utilizziamo quindi 7 bit per rappresentare 128 caratteri, tra cui lettere maiuscole e minuscole dell'alfabeto inglese, numeri, vari segni di punteggiatura e caratteri di controllo del dispositivo. A causa di questa limitazione di caratteri, la maggior parte della popolazione non era in grado di utilizzare il proprio sistema di scrittura personalizzato. Per risolvere questo problema "nacque" Unicode. Unicode è un superset di ASCII che contiene tutti i caratteri utilizzati oggi nei sistemi di scrittura mondiali. Include accenti, segni diacritici, codici di controllo come tabulazioni e interruzioni di riga, assegnando a ciascun carattere un numero standard chiamato "Unicode Code Point" o "Runa" in Go. Il tipo Rune è un alias per int32.
Punti da ricordare sulle Rune in Golang
- Ricorda sempre che una stringa è una sequenza di byte, non una runa. Una stringa può contenere testo Unicode codificato in UTF-8. Tuttavia, il codice sorgente di Go è codificato in UTF-8, quindi non è necessario codificare le stringhe in UTF-8.
- UTF-8 codifica tutti i caratteri Unicode nell'intervallo da 1 a 4 byte, dove 1 byte viene utilizzato per ASCII e il resto per le rune.
- ASCII contiene un totale di 256 elementi, di cui 128 sono caratteri e 0-127 sono definiti come punti di codice. Qui, il punto di codice si riferisce a un elemento che rappresenta un singolo valore.
Per esempio:
♄
Questa è una runa con valore esadecimale ♄.
Il vero significato delle rune
Rappresenta una costante Rune, in cui un valore intero identifica un punto di codice Unicode. Nel linguaggio Go, una runa letterale è rappresentata da uno o più caratteri racchiusi tra parentesi, come 'g', '\t', ecc. Tra le parentesi è consentito inserire qualsiasi carattere, eccetto una nuova riga e una parentesi senza escape. In questo caso, i caratteri racchiusi tra parentesi rappresentano il valore Unicode del carattere stesso specificato, mentre le stringhe multicarattere con una barra rovesciata (all'inizio della stringa multicarattere) codificano i valori in un formato diverso. In Rune Literal, tutte le stringhe che iniziano con una barra rovesciata non sono valide, solo i seguenti caratteri singoli di escape rappresentano valori speciali quando vengono utilizzati con una barra rovesciata:
| Carattere |
Unicode |
Descrivere |
| \UN |
U+0007 |
Avviso o campanello |
| \B |
U+0008 |
Backspace |
| \F |
U+000C |
Dati del modulo |
| \N |
U+000A |
Avanzamento o interruzione di riga |
| \R |
U+000D |
Torna all'inizio della riga |
| \T |
U+0009 |
Scheda orizzontale |
| \v |
U+000b |
Scheda verticale |
| \\ |
U+005c |
Barra rovesciata |
| \' |
U+0027 |
Apostrofo |
| \" |
U+0022 |
Virgolette doppie (valide solo nelle stringhe di caratteri) |
Per esempio:
//Minh họa chương trình Go đơn giản về cách tạo một rune
package main
import (
"fmt"
"reflect"
)
func main() {
// Tạo một rune
rune1 := 'B'
rune2 := 'g'
rune3 := '\a'
// Hiện rune và kiểu của nó
fmt.Printf("Rune 1: %c; Unicode: %U; Type: %s", rune1,
rune1, reflect.TypeOf(rune1))
fmt.Printf("\nRune 2: %c; Unicode: %U; Type: %s", rune2,
rune2, reflect.TypeOf(rune2))
fmt.Printf("\nRune 3: Unicode: %U; Type: %s", rune3,
reflect.TypeOf(rune3))
}
Risultato:
Rune 1: B; Unicode: U+0042; Type: int32
Rune 2: g; Unicode: U+0067; Type: int32
Rune 3: Unicode: U+0007; Type: int32
Esempio 2:
![Come usare le Rune in Golang Come usare le Rune in Golang]()
Risultato:
Character: ♛, Unicode:U+265B, Position:0
Character: ♠, Unicode:U+2660, Position:1
Character: ♧, Unicode:U+2667, Position:2
Character: ♡, Unicode:U+2661, Position:3
Character: ♬, Unicode:U+266C, Position:4