2011-12-06 13 views

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.

+3

Sí, pero está estropeando mi código de golf –

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