¿Existe una forma integrada de convertir bools en enteros o viceversa? Probé el casting normal, pero como usan diferentes tipos subyacentes, la conversión no es posible de la manera clásica. He repasado algunas de las especificaciones, y aún no he encontrado una respuesta.¿Hay alguna forma de convertir enteros a bools en go o viceversa?
16
A
Respuesta
28
Int a bool es fácil, sólo x != 0
hará el truco. Para ir a otro lado, ya Go no admite un operador ternario, que tendría que hacer:
var x int
if b {
x = 1
} else {
x = 0
}
Se podría, por supuesto, poner esto en una función:
func Btoi(b bool) int {
if b {
return 1
}
return 0
}
hay tan muchas posibles interpretaciones booleanas de enteros, ninguna de ellas necesariamente natural, que tiene sentido decir lo que quieres decir.
En mi experiencia (YMMV), no tienes que hacer esto a menudo si estás escribiendo un buen código. A veces es atractivo poder escribir una expresión matemática basada en un booleano, pero sus mantenedores le agradecerán por evitarlo.
5
var a int = 3
var b bool = a != 0
Acabo de caer esto en el demo box en el golang front page:
package main
import "fmt"
func main() {
var a int = 3
var b bool = a != 0
fmt.Println("Hello, 世界", b)
}
Salida:
Hello, 世界 true
3
Aquí un truco para convertir de int
a bool
:
x := 0
newBool := !(x == 0) // returns false
donde x
es la variable int
desea convertir.
Cuestiones relacionadas
- 1. ¿Hay alguna forma de convertir json a xml en PHP?
- 2. Python/Numpy: Convertir la lista de Bools a unsigned int
- 3. ¿Hay alguna forma de hacer bitwise-O enumeraciones en Java?
- 4. Pasando enteros a int y viceversa
- 5. Cómo convertir de [] byte a int en Go Programming
- 6. ¿Cómo convertir POJO a JSON y viceversa?
- 7. ¿Qué significa convertir int a void * o viceversa?
- 8. Convertir 0 a 1 y viceversa
- 9. Java convertir int a hexadecimal y viceversa
- 10. Convertir codificación ascii a int y viceversa en python (rápidamente)
- 11. Convertir una imagen a base64 y viceversa
- 12. ¿Hay alguna forma de convertir un diccionario a String a mano?
- 13. ¿Hay alguna forma de comparar dos diffs o parches?
- 14. ¿Hay alguna manera fácil de convertir Criteria a HQL?
- 15. convertir fuente a cadena y viceversa
- 16. entidades convertir HTML a Unicode y viceversa
- 17. Convertir píxeles a pulgadas y viceversa en C#
- 18. Cómo convertir números decimales en cuando o viceversa
- 19. Convertir cadena JRuby a matriz de bytes Java, y viceversa
- 20. ¿Existe alguna forma mejor de convertir de UTCTime a EpochTime?
- 21. ¿Hay alguna forma de convertir mediante programación cadenas de formato VB6 a cadenas de formato .NET?
- 22. Cómo convertir caracteres a enteros en C?
- 23. ¿Hay alguna forma en scala para convertir desde cualquier mapa a java.util.Map?
- 24. ¿Hay alguna forma de currying en C?
- 25. ¿Hay alguna forma de sobrecargar + = en python?
- 26. ¿Hay alguna buena manera de "codificar" datos binarios como palabras compuestas plausibles y viceversa?
- 27. ¿Hay alguna forma de convertir fácilmente el código de Ruby a PHP?
- 28. ¿Alguna mejor forma de convertir una matriz a un diccionario simultáneo usando linq o IEnumarable?
- 29. ¿Hay alguna manera fácil en PHP para convertir cadenas como '256M', '180K', '4G' a sus equivalentes enteros?
- 30. Convertir PDF de varias páginas a PNG y viceversa (Linux)
Sí, pero está estropeando mi código de golf –