比較運算 比較運算

比較運算

基礎類型比較

package main

import "fmt"

func  main() {
    var a = 1
    var b = 1

    if &a == &b {
        fmt.Println("pointer cmp")
    }

    if a == b {
        fmt.Println("value cmp")
    }

}
value cmp

對於intbool等基礎類型直接比較值相等,對於指針則是直接比較的指針所指向的地址是否相等

字符串比較

字符串的比較問題在C/C++Java中都是一個值得討論的問題

package main

import "fmt"

func  main() {
    var a = "a"
    var b = "a"

    if a == b {
        fmt.Println("string cmp")
    }

}
string cmp

對於字符串類型也是直接比較的字符串內容是否相等

結構體比較

package main

import "fmt"

type st struct {
    v int
}

func  main() {
    var a = st{v: 10}
    var b = st{v: 10}

    if a == b {
        fmt.Println("string cmp")
    }

}
string cmp

在go語言中會比較結構體的每一個參數來判斷是否相等,所以結構體比較也是有意義的
而且這裏的比較對於匿名結構體也是一樣的,而對於不同類型的結構體則會直接報錯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章