English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基礎トレーニング

Golang 制御文

Golang ファンクション & メソッド

Golang 枠体

Golang スライス & 配列

Golang 文字列(String)

Golang ポインタ

Golang インターフェース

Golang 并行

Golang エラ(Error)

Golang その他の雑項

Go 言語のポインタ比較

Go言語では、2つのポインタを比較することが許可されています。2つのポインタの値は、メモリの同じ値を指している場合またはnilである場合にのみ等しいです。==および!=演算子を使用して、Go言語でポインタを比較することができます:

1. == 演算子:この演算子は、2つのポインタが同じ変数を指している場合にtrueを返します。または、2つのポインタが異なる変数を指している場合にfalseを返します。

语法:

pointer_1 == pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //ポインタの作成と初期化
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    //ポインタを比較するための==演算子を使用
    res1 := &p1 == &p2
    fmt.Println("p1ポインタがpに等しいかどうか2ポインタ: ", res1)
    res2 := p1 == p2
    fmt.Println("p1ポインタがpに等しいかどうか2ポインタ: ", res2)
    res3 := p1 == p3
    fmt.Println("p1ポインタがpに等しいかどうか3ポインタ: ", res3)
    res4 := p2 == p3
    fmt.Println("p2ポインタがpに等しいかどうか3ポインタ: ", res4)
    res5 := &p3 == &p1
    fmt.Println("p3ポインタがpに等しいかどうか1ポインタ: ", res5)
}

出力:

p1ポインタがpに等しいかどうか2ポインタ:  false
p1ポインタがpに等しいかどうか2ポインタ:  false
p1ポインタがpに等しいかどうか3ポインタ:  true
p2ポインタがpに等しいかどうか3ポインタ:  false
p3ポインタがpに等しいかどうか1ポインタ:  false

2.!= 演算子:この演算子は、2つのポインタが同じ変数を指している場合にfalseを返します。または、2つのポインタが異なる変数を指している場合にtrueを返します。

语法:

pointer_1 != pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //ポインタの作成と初期化
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    // ポインタを比較するための != 演算子を使用
    res1 := &p1 != &p2
    fmt.Println("p1ポインタはpに等しくない2ポインタですか: ", res1)
    res2 := p1 != p2
    fmt.Println("p1ポインタはpに等しくない2ポインタですか: ", res2)
    res3 := p1 != p3
    fmt.Println("p1ポインタはpに等しくない3ポインタですか: ", res3)
    res4 := p2 != p3
    fmt.Println("p2ポインタはpに等しくない3ポインタですか: ", res4)
    res5 := &p3 != &p1
    fmt.Println("p3ポインタはpに等しくない1ポインタですか: ", res5)
}

出力:

p1ポインタはpに等しくない2ポインタですか:  true
p1ポインタはpに等しくない2ポインタですか:  true
p1ポインタはpに等しくない3ポインタですか:  false
p2ポインタはpに等しくない3ポインタですか:  true
p3ポインタはpに等しくない1ポインタですか:  true