¿Qué son las Runas en Golang? ¿Cómo usar Runas en Golang? El artículo te dirá la respuesta.

En el pasado, sólo teníamos un conjunto de caracteres, y se llamaba ASCII (Código estándar americano para el intercambio de información). Luego usamos 7 bits para representar 128 caracteres, incluidas letras mayúsculas y minúsculas en inglés, números y varios signos de puntuación y caracteres de control del dispositivo. Debido a esta limitación de caracteres, la mayoría de la población no pudo utilizar su sistema de escritura personalizado. Para solucionar ese problema, nació Unicode. Unicode es un superconjunto de ASCII que contiene todos los caracteres de los sistemas de escritura del mundo actual. Incluye acentos, diacríticos, códigos de control como tabulaciones y saltos de línea, asignando a cada carácter un número estándar llamado "Punto de código Unicode" o en Go, "Runa". El tipo Rune es un alias para int32.
Puntos a recordar sobre las Runas en Golang
- Recuerde siempre que una cadena es una secuencia de bytes, no una runa. Una cadena puede contener texto Unicode codificado en UTF-8. Pero el código fuente de Go está codificado en UTF-8, por lo que no es necesario codificar cadenas en UTF-8.
- UTF-8 codifica todos los Unicode en el rango de 1 a 4 bytes, donde 1 byte se utiliza para ASCII y el resto para Runas.
- ASCII contiene un total de 256 elementos, de los cuales 128 son caracteres y del 0 al 127 se definen como puntos de código. Aquí, el punto de código se refiere a un elemento que representa un valor único.
Por ejemplo:
♄
Esta es una Runa con el valor hexadecimal ♄.
El verdadero significado de las runas
Representa una constante Rune, donde un valor entero identifica un punto de código Unicode. En el lenguaje Go, un literal rúnico se representa como uno o más caracteres encerrados entre paréntesis, como 'g', '\t', etc. Entre los paréntesis, se permite colocar cualquier carácter excepto una nueva línea y un paréntesis sin escape. Aquí, los caracteres encerrados entre estos paréntesis representan el valor Unicode del carácter dado en sí, y las cadenas de varios caracteres con una barra invertida (al comienzo de la cadena de varios caracteres) codifican los valores en un formato diferente. En Rune Literal, todas las cadenas que comienzan con una barra invertida no son válidas, solo los siguientes caracteres de escape individuales representan valores especiales cuando los usa con una barra invertida:
Personaje |
Unicode |
Describir |
\a |
U+0007 |
Alerta o campana |
\b |
U+0008 |
Retroceso |
\F |
U+000C |
Datos del formulario |
\norte |
U+000A |
Salto de línea o salto de línea |
\r |
U+000D |
Regresar al principio de la línea |
\t |
U+0009 |
Pestaña horizontal |
\v |
U+000b |
Pestaña vertical |
\\ |
U+005c |
Barra invertida |
\' |
U+0027 |
Apóstrofe |
" " |
U+0022 |
Comillas dobles (válidas sólo en cadenas de caracteres) |
Por ejemplo:
//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))
}
Resultado:
Rune 1: B; Unicode: U+0042; Type: int32
Rune 2: g; Unicode: U+0067; Type: int32
Rune 3: Unicode: U+0007; Type: int32
Ejemplo 2:

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