byte y rune
byte
es un alias de uint8
y ocupa un byte (8 bits). Se puede utilizar para representar todos los caracteres de la tabla ASCII. Sin embargo, dado que byte
puede representar un rango limitado de valores (256 o 2^8), cuando se trata de caracteres compuestos como los caracteres chinos, necesitamos utilizar el tipo rune
.
Crea un nuevo archivo llamado byte.go
y escribe el siguiente código:
cd ~/project
touch byte.go
package main
import "fmt"
func main() {
var a byte = 76
fmt.Printf("Value of a: %c\n", a)
var b uint8 = 76
fmt.Printf("Value of b: %c\n", b)
var c byte = 'L'
fmt.Printf("Value of c: %c\n", c)
}
Después de ejecutar el programa, se mostrará el siguiente resultado:
go run byte.go
Value of a: L
Value of b: L
Value of c: L
El marcador de posición %c
se utiliza para mostrar caracteres. Se puede ver que el tipo byte
y el tipo uint8
producen la misma salida cuando sus valores son iguales. Al consultar la tabla ASCII, se puede ver que el valor ASCII de la letra 'A' es 65. Cuando utilizamos el marcador de posición de entero %d
para mostrar el valor, también es 65.
Por lo tanto, es evidente que byte
en Go es equivalente a uint8
en los tipos enteros. Lo mismo se aplica a rune
, pero representa un rango diferente de valores enteros.
rune
es un alias de int32
y ocupa cuatro bytes (32 bits). Se utiliza para representar caracteres compuestos, como los emojis.
Actualiza el archivo byte.go
con el siguiente código:
package main
import "fmt"
func main() {
var a rune = '😊' // Smile emoji
fmt.Printf("Value of a: %c\n", a)
var b int32 = 9829 // Decimal representation of a Unicode character (Heart symbol)
fmt.Printf("Value of b: %c\n", b)
var c rune = 0x1F496 // Hexadecimal representation of a Unicode character (Sparkling heart emoji)
fmt.Printf("Value of c: %c\n", c)
var d rune = '\u0041' // Unicode character represented by its code point (Capital letter 'A')
fmt.Printf("Value of d: %c\n", d)
var e rune = '\U0001F609' // Unicode character represented by its code point (Winking face emoji)
fmt.Printf("Value of e: %c\n", e)
}
Después de ejecutar el programa, se mostrará la siguiente salida:
go run byte.go
Nota: Ejecuta el programa en el escritorio o en la terminal del WebIDE, pero evita ejecutarlo en la pestaña de la terminal ubicada en la parte superior de la máquina virtual de LabEx.
Value of a: 😊
Value of b: ♥
Value of c: 💖
Value of d: A
Value of e: 😉
- La variable a representa el emoji de sonrisa '😊'.
- La variable b se inicializa con la representación decimal de un carácter Unicode (9829), que corresponde al símbolo del corazón '♥'.
- La variable c se inicializa con la representación hexadecimal de un carácter Unicode (0x1F496), que corresponde al emoji del corazón brillante '💖'.
- La variable d representa la letra mayúscula 'A' utilizando el formato Unicode \u0041.
- La variable e representa el emoji de cara guiñando un ojo '😉' utilizando el formato \U con el punto de código 0001F609.
Nota: En Go, las comillas simples y las comillas dobles no son lo mismo. Las comillas simples se utilizan para representar caracteres, mientras que las comillas dobles se utilizan para declarar cadenas. Por lo tanto, se deben utilizar comillas simples al declarar tipos byte
y rune
, de lo contrario se producirá un error.