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