第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Golang中Python的“id”函數(shù)相當(dāng)于什么?

Golang中Python的“id”函數(shù)相當(dāng)于什么?

Go
繁華開(kāi)滿天機(jī) 2023-08-14 16:14:39
Golang中Python的“id”函數(shù)相當(dāng)于什么?id 是我通常用來(lái)比較 Python 中兩個(gè)對(duì)象是否相同的方法(通過(guò)交叉檢查它們的“id”是否相同。當(dāng)然也有例外 - 就像有時(shí)在 PyTorch 張量中一樣,但大多數(shù)情況下這是有效的)。對(duì)于 Golang 中的相同情況,我發(fā)現(xiàn)您可以使用此答案中提到的函數(shù)DeepEqual?。但我想知道 Python 中是否有一個(gè)相當(dāng)于 id 的函數(shù),這確實(shí)是一個(gè)非常方便的函數(shù)。
查看完整描述

3 回答

?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

package main


import "fmt"


func main() {

? ? i := 32

? ? j := 32

? ? fmt.Printf("%p is %p\n", &i, &i)

? ? fmt.Printf("%p is not %p\n", &i, &j)

}

輸出:


0xc000016100 is 0xc000016100

0xc000016100 is not 0xc000016108

游樂(lè)場(chǎng):https://play.golang.org/p/nXAEJeImeXa

然而,


package main


import "fmt"


func main() {

? ? i := 32

? ? j := 32

? ? fmt.Printf("i %p is i %p; i == i %t\n", &i, &i, &i == &i)

? ? fmt.Printf("i %p is not j %p; i == j %t\n", &i, &j, &i == &j)


? ? fmt.Println()


? ? var v struct {

? ? ? ? i struct{}

? ? ? ? j struct{}

? ? }

? ? fmt.Printf("i %p is i %p; i == i %t\n", &v.i, &v.i, &v.i == &v.i)

? ? fmt.Printf("i %p is not j %p; i == j %t\n", &v.i, &v.j, &v.i == &v.j)

}

輸出:


i 0x40e020 is i 0x40e020; i == i true

i 0x40e020 is not j 0x40e024; i == j false


i 0x1e52bc is i 0x1e52bc; i == i true

i 0x1e52bc is not j 0x1e52bc; i == j true

游樂(lè)場(chǎng):https://play.golang.org/p/Wv814ZgPCul


封裝CMP

import?"github.com/google/go-cmp/cmp"

cmp 包確定值的相等性。

該包旨在成為 Reflect.DeepEqual 的更強(qiáng)大、更安全的替代方案,用于比較兩個(gè)值在語(yǔ)義上是否相等。


查看完整回答
反對(duì) 回復(fù) 2023-08-14
?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用 CPython,id返回內(nèi)存中對(duì)象的地址。在 Go 中,您可以通過(guò) & 符號(hào)獲取指向?qū)ο蟮闹羔槪?/p>


package main


import "fmt"


func main() {

    i := 32

    j := 32

    fmt.Printf("%p is %p\n", &i, &i)

    fmt.Printf("%p is not %p\n", &i, &j)

}

上面示例的輸出在我的機(jī)器上如下所示:


0xc000016100 is 0xc000016100

0xc000016100 is not 0xc000016108


查看完整回答
反對(duì) 回復(fù) 2023-08-14
?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以用來(lái)DeepEqual比較兩個(gè)對(duì)象的內(nèi)容。但是,我不認(rèn)為 python 就是id這么做的。從 python 中的定義來(lái)看id,您所追求的似乎是指針等效,而不是DeepEqualid狀態(tài)的函數(shù)定義

這是一個(gè)整數(shù),保證該對(duì)象在其生命周期內(nèi)是唯一且恒定的。

如果要比較兩個(gè)指針值,則可以簡(jiǎn)單地使用==:如果兩個(gè)指針指向同一對(duì)象,則它們相等。如果兩個(gè)指針值不相等,它們?nèi)匀豢赡苤赶蚓哂邢嗤瑑?nèi)容的對(duì)象,因此p1==p2可能為假,但DeepEqual(*p1,*p2)也可能為真。


查看完整回答
反對(duì) 回復(fù) 2023-08-14
  • 3 回答
  • 0 關(guān)注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)