mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-05 14:03:45 +00:00
26 lines
738 B
Markdown
26 lines
738 B
Markdown
### 4.4.2. 結構體比較
|
||
|
||
如果結構體的全部成員都是可以比較的,那麽結構體也是可以比較的,那樣的話兩個結構體將可以使用==或!=運算符進行比較。相等比較運算符==將比較兩個結構體的每個成員,因此下面兩個比較的表達式是等價的:
|
||
|
||
```Go
|
||
type Point struct{ X, Y int }
|
||
|
||
p := Point{1, 2}
|
||
q := Point{2, 1}
|
||
fmt.Println(p.X == q.X && p.Y == q.Y) // "false"
|
||
fmt.Println(p == q) // "false"
|
||
```
|
||
|
||
可比較的結構體類型和其他可比較的類型一樣,可以用於map的key類型。
|
||
|
||
```Go
|
||
type address struct {
|
||
hostname string
|
||
port int
|
||
}
|
||
|
||
hits := make(map[address]int)
|
||
hits[address{"golang.org", 443}]++
|
||
```
|
||
|