2011-12-06 37 views

回答

28

詮釋爲BOOL很簡單,只需將x != 0做的伎倆。爲了走另一條路,因爲Go不支持三元運算符,你必須做的:

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

你當然可以把它放進一個函數:

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

有這麼許多可能的整數布爾解釋,但它們都不是必然的,所以必須說出你的意思是有意義的。

根據我的經驗(YMMV),如果您編寫的代碼很好,您不必經常這樣做。它有時候很有吸引力,可以寫一個基於布爾值的數學表達式,但是你的維護者會感謝你避免它。

+3

是的,但它搞亂了我的代碼高爾夫 –

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

我剛把這個到demo boxgolang front page

package main 

import "fmt" 

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

輸出:

Hello, 世界 true 
3

這裏有一個竅門轉換從intbool

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

其中x是要從轉換int變量。

相關問題