Go語言bool型別

2021-10-09 05:56:46 字數 925 閱讀 7360

go語言對於值之間的比較有非常嚴格的限制,只有兩個相同型別的值才可以進行比較,如果值的型別是介面(inte***ce),那麼它們也必須都實現了相同的介面。如果其中乙個值是常量,那麼另外乙個值可以不是常量,但是型別必須和該常量型別相同。如果以上條件都不滿足,則必須將其中乙個值的型別轉換為和另外乙個值的型別相同之後才可以進行比較。

布林值可以和 &&(and)和 ||(or)操作符結合,並且有短路行為,如果運算子左邊的值已經可以確定整個布林表示式的值,那麼運算子右邊的值將不再被求值

因為&&的優先順序比||高(&& 對應邏輯乘法,|| 對應邏輯加法,乘法比加法優先順序要高),所以下面的布林表示式可以不加小括號:

if 'a' <= c && c <= 'z' ||'a' <= c && c <= 'z'
我們在c語言中可以直接通過是整數值來判斷true或false,go語言中不允許將整形強制轉換為布林型,反之亦然,必須使用 if 語句顯式的進行轉換

例如:

var n bool

fmt.println(int(n))

會提示編譯錯誤:

cannot convert n (type bool) to type int

因此,我們可以使用 if 語句顯式的進行轉換:

i := 0

if b

如果需要經常做類似的轉換,可以將轉換的**封裝成乙個函式,如下所示:

// 如果b為真,btoi返回1;如果為假,btoi返回0

func btoi(b bool) int

return 0

}

數字到布林型的逆轉換非常簡單,不過為了保持對稱,我們也可以封裝乙個函式:

func itob(i int) bool

C語言中的Bool型別

在c99之前,c語言中沒有定義bool型別,但是在c99標準中將該型別新增了進來。首先來看看,c99中定義的bool型別如何使用。1.基於c99標準,如何定義乙個bool型別?有兩種方式 a.bool man 需要注意的是,雖然bool型別了,但是true和flase卻沒有定義,所以推薦用b方式 b...

C語言的布林型別 Bool

也許很多人都和我一樣,不知道現在的c語言已經有了布林型 從c99標準開始,型別名字為 bool 在此之前的c語言中,使用整型int來表示真假。在輸入時 使用非零值表示真 零值表示假。在輸出時 真的結果是1,假的結果是0 這裡我所說的 輸入 意思是 當在乙個需要布林值的地方,也就是其它型別轉化為布林型...

C語言的布林型別 Bool

也許很多人都和我一樣,不知道現在的c語言已經有了布林型 從c99標準開始,型別名字為 bool 在此之前的c語言中,使用整型int來表示真假。在輸入時 使用非零值表示真 零值表示假。在輸出時 真的結果是1,假的結果是0 這裡我所說的 輸入 意思是 當在乙個需要布林值的地方,也就是其它型別轉化為布林型...