在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/GO/ Golang interface為什么可以和int等類型判斷相等?

Golang interface為什么可以和int等類型判斷相等?

func main() {
    var user_id interface{}
    user_id = 123

    var id int
    id = 123
    
    //這里不能賦值,因?yàn)轭愋筒灰粯?    //id = user_id

    //但是這里可以判斷,為什么不同的類型可以判斷相等???
    if user_id == id {
        fmt.Println("相等", user_id)
    } else {
        fmt.Println("不相等", user_id)
    }
}
回答
編輯回答
歆久

你把interface{}看做structs
1、intreface的值是可比較的。如果兩個interface 有相同的動態(tài)類型和相同的動態(tài)值,而且不為nil,那么這兩個interface就是相同的
2、非interface類型X 和 intreface類型T,如果X實(shí)現(xiàn)了T, 那么x和t(x t 分代表X和T的值)就是可比較的。如果他們的值是相同的,那么他們就是equal
3、如果struct的所有field都是可比較的,那他們的值就是可比較的。
在go中,判斷equal比較簡單

2018年7月19日 21:34