Conversión de Tipos Básica
**Es el proceso de convertir datos de un tipo de datos a otro. Sin embargo, es importante tener en cuenta que no siempre es posible convertir datos de un tipo de datos a otro. Por ejemplo, podemos convertir un float
en un int
y viceversa. Sin embargo, no tendría sentido convertir una string
en una int
, por lo que no es posible.
Hay dos tipos de conversión de tipos o typecasting. Uno de ellos es Implicit Type Casting. La conversión implícita ocurre cuando Go convierte automáticamente un tipo a otro cuando es seguro y no ambiguo. Por ejemplo, cuando asignamos un valor entero a una variable float, se trata como un float automáticamente, ya que no se pueden perder datos durante la conversión (10
es lo mismo que 10.0
):
index.go
1var myFloat float32 = 10 // A valid statement
El otro tipo de conversión de tipos es la Clasificación Explícita de Tipos, que ocurre cuando el programador convierte explícitamente datos o expresiones de un tipo a otro. La sintaxis para la conversión explícita de tipos es desiredType(expression)
, por ejemplo:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
En el programa anterior, convertimos un valor float32
en un valor int
utilizando la conversión explícita de tipos. Como resultado, la parte decimal del número original se descarta, y sólo el valor integral 7
se almacena en number2
. Es importante tener en cuenta que en este caso se pierden algunos datos, concretamente la parte decimal del número (0.9
). Sin embargo, hemos hecho esa elección explícitamente.
Del mismo modo, podemos convertir una runa
en una cadena
. En el capítulo Runas, exploramos un programa que mostraba el valor de una Runa, que era un número. Sin embargo, podemos mostrar el equivalente en caracteres de una Runa convirtiéndola en una cadena:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Sin embargo, no podemos convertir una cadena
en una runa
:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Es importante señalar que tampoco podemos convertir una cadena que contenga un solo carácter en una runa:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 1.96
Conversión de Tipos Básica
Desliza para mostrar el menú
**Es el proceso de convertir datos de un tipo de datos a otro. Sin embargo, es importante tener en cuenta que no siempre es posible convertir datos de un tipo de datos a otro. Por ejemplo, podemos convertir un float
en un int
y viceversa. Sin embargo, no tendría sentido convertir una string
en una int
, por lo que no es posible.
Hay dos tipos de conversión de tipos o typecasting. Uno de ellos es Implicit Type Casting. La conversión implícita ocurre cuando Go convierte automáticamente un tipo a otro cuando es seguro y no ambiguo. Por ejemplo, cuando asignamos un valor entero a una variable float, se trata como un float automáticamente, ya que no se pueden perder datos durante la conversión (10
es lo mismo que 10.0
):
index.go
1var myFloat float32 = 10 // A valid statement
El otro tipo de conversión de tipos es la Clasificación Explícita de Tipos, que ocurre cuando el programador convierte explícitamente datos o expresiones de un tipo a otro. La sintaxis para la conversión explícita de tipos es desiredType(expression)
, por ejemplo:
index.go
12345678package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }
En el programa anterior, convertimos un valor float32
en un valor int
utilizando la conversión explícita de tipos. Como resultado, la parte decimal del número original se descarta, y sólo el valor integral 7
se almacena en number2
. Es importante tener en cuenta que en este caso se pierden algunos datos, concretamente la parte decimal del número (0.9
). Sin embargo, hemos hecho esa elección explícitamente.
Del mismo modo, podemos convertir una runa
en una cadena
. En el capítulo Runas, exploramos un programa que mostraba el valor de una Runa, que era un número. Sin embargo, podemos mostrar el equivalente en caracteres de una Runa convirtiéndola en una cadena:
index.go
123456789package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }
Sin embargo, no podemos convertir una cadena
en una runa
:
index.go
12var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune
Es importante señalar que tampoco podemos convertir una cadena que contenga un solo carácter en una runa:
index.go
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
¡Gracias por tus comentarios!