2011-12-06 13 views

Odpowiedz

28

Int do bool jest proste, wystarczy x != 0 rade. Aby przejść na drugą stronę, ponieważ Go nie obsługuje operator potrójny, trzeba zrobić:

var x int 
if b { 
    x = 1 
} else { 
    x = 0 
} 

Można oczywiście umieścić to w funkcję:

func Btoi(b bool) int { 
    if b { 
     return 1 
    } 
    return 0 
} 

Jest tak wiele możliwych interpretacji boolowskich liczb całkowitych, z których żadna nie musi być naturalna, że ​​sensowne jest mówienie o tym, co masz na myśli.

Z mojego doświadczenia (YMMV), nie musisz robić tego często, jeśli piszesz dobry kod. Czasami może się zdarzyć, że będziesz w stanie napisać wyrażenie matematyczne oparte na logice boolowskiej, ale twoi opiekunowie będą ci wdzięczni za uniknięcie tego.

+3

tak, ale to psuje mój kod golfa –

5
var a int = 3 
var b bool = a != 0 

Właśnie ta spadła do demo box na golang front page:

package main 

import "fmt" 

func main() { 
var a int = 3 
var b bool = a != 0 
    fmt.Println("Hello, 世界", b) 
} 

wyjściowa:

Hello, 世界 true 
3

Oto sztuczka przekonwertować z int do bool:

x := 0 
newBool := !(x == 0) // returns false 

gdzie x jest int zmienna chcesz przekonwertować z.

Powiązane problemy