En el pasado, solo teníamos un conjunto de caracteres, y se conocía como ASCII (Código estándar estadounidense para el intercambio de información). Allí, usamos 7 bits para representar 128 caracteres, incluidas letras inglesas mayúsculas y minúsculas, dígitos y una variedad de signos de puntuación y caracteres de control de dispositivos. Debido a esta limitación de caracteres, la mayoría de la población no puede utilizar sus sistemas de escritura personalizados. Para resolver este problema, se inventó Unicode. Unicode es un superconjunto de ASCII que contiene todos los caracteres presentes en el sistema de escritura mundial actual. Incluye acentos, marcas diacríticas, códigos de control como tabuladores y retornos de carro, y asigna a cada carácter un número estándar llamado «Punto de código Unicode» o, en lenguaje Go, una «Runa». El tipo Rune es un alias de int32. Puntos importantes:
- Recuerde siempre, una string es una secuencia de bytes y no de una Runa. Una string puede contener texto Unicode codificado en UTF-8. Pero, el código fuente de Go codifica como UTF-8, por lo tanto, no es necesario codificar la string en UTF-8.
- UTF-8 codifica todos los Unicode en el rango de 1 a 4 bytes, donde 1 byte se usa para ASCII y el resto para Rune.
- ASCII contiene un total de 256 elementos y de los cuales, 128 son caracteres y 0-127 se identifican como puntos de código. Aquí, el punto de código se refiere al elemento que representa un valor único.
Ejemplo:
♄
Es una Runa con valor hexadecimal ♄.
Literal rúnico
Representa una constante de Rune, donde un valor entero reconoce un punto de código Unicode. En el lenguaje Go, una Runa Literal se expresa como uno o más caracteres entre comillas simples como ‘g’, ‘\t’, etc. Entre comillas simples, puede colocar cualquier carácter excepto una nueva línea y una comilla simple sin escape. . Aquí, estos caracteres entre comillas simples representan el valor Unicode del carácter dado y las secuencias de varios caracteres con una barra invertida (al principio de la secuencia de varios caracteres) codifican valores en un formato diferente. En Rune Literals, todas las secuencias que comienzan con una barra invertida son ilegales, solo los siguientes escapes de un solo carácter representan valores especiales cuando los usa con una barra invertida:
Personaje | Unicode | Descripción |
---|---|---|
\a | U+0007 | Alerta o Campana |
\b | U+0008 | retroceso |
\F | U+000C | alimentación de formulario |
\norte | U+000A | avance de línea o salto de línea |
\r | U+000D | retorno de carro |
\t | U+0009 | pestaña horizontal |
\v | U+000b | pestaña vertical |
\\ | U+005c | barra invertida |
\’ | U+0027 | una frase |
\” | U+0022 | comillas dobles (legales solo en strings literales) |
Ejemplo 1:
C
// Simple Go program to illustrate // how to create a rune package main import ( "fmt" "reflect" ) func main() { // Creating a rune rune1 := 'B' rune2 := 'g' rune3 := '\a' // Displaying rune and its type 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)) }
Producción:
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: Salida:
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
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA