日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)GO教程:Go語言bool類型(布爾類型)

一個布爾類型的值只有兩種:true 或 false。if 和 for 語句的條件部分都是布爾類型的值,并且
==
<等比較操作也會產(chǎn)生布爾型的值。

一元操作符
!對應(yīng)邏輯非操作,因此
!true的值為 false,更復(fù)雜一些的寫法是
(!true==false) ==true,實際開發(fā)中我們應(yīng)盡量采用比較簡潔的布爾表達式,就像用 x 來表示
x==true

var aVar = 10
aVar == 5  // false
aVar == 10 // true
aVar != 5  // true
aVar != 10 // false

Go語言對于值之間的比較有非常嚴(yán)格的限制,只有兩個相同類型的值才可以進行比較,如果值的類型是接口(interface),那么它們也必須都實現(xiàn)了相同的接口。如果其中一個值是常量,那么另外一個值可以不是常量,但是類型必須和該常量類型相同。如果以上條件都不滿足,則必須將其中一個值的類型轉(zhuǎn)換為和另外一個值的類型相同之后才可以進行比較。

布爾值可以和 &&(AND)和 ||(OR)操作符結(jié)合,并且有短路行為,如果運算符左邊的值已經(jīng)可以確定整個布爾表達式的值,那么運算符右邊的值將不再被求值,因此下面的表達式總是安全的:

s != "" && s[0] == 'x'

其中 s[0] 操作如果應(yīng)用于空字符串將會導(dǎo)致 panic 異常。

因為
&&的優(yōu)先級比
||高(&& 對應(yīng)邏輯乘法,|| 對應(yīng)邏輯加法,乘法比加法優(yōu)先級要高),所以下面的布爾表達式可以不加小括號:

if 'a' <= c && c <= 'z' ||
    'A' <= c && c <= 'Z' ||
    '0' <= c && c <= '9' {
    // ...ASCII字母或數(shù)字...
}

布爾值并不會隱式轉(zhuǎn)換為數(shù)字值 0 或 1,反之亦然,必須使用 if 語句顯式的進行轉(zhuǎn)換:

i := 0
if b {
    i = 1
}

如果需要經(jīng)常做類似的轉(zhuǎn)換,可以將轉(zhuǎn)換的代碼封裝成一個函數(shù),如下所示:

// 如果b為真,btoi返回1;如果為假,btoi返回0
func btoi(b bool) int {
    if b {
        return 1
    }
    return 0
}

數(shù)字到布爾型的逆轉(zhuǎn)換非常簡單,不過為了保持對稱,我們也可以封裝一個函數(shù):

// itob報告是否為非零。
func itob(i int) bool { return i != 0 }

Go語言中不允許將整型強制轉(zhuǎn)換為布爾型,代碼如下:

var n bool
fmt.Println(int(n) * 2)

編譯錯誤,輸出如下:

cannot convert n (type bool) to type int

布爾型無法參與數(shù)值運算,也無法與其他類型進行轉(zhuǎn)換。


網(wǎng)站名稱:創(chuàng)新互聯(lián)GO教程:Go語言bool類型(布爾類型)
URL網(wǎng)址:http://m.5511xx.com/article/cccooce.html