Runa en Golang

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *