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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

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

3 回答

?
蝴蝶不菲

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

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

游樂場: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

游樂場:https://play.golang.org/p/Wv814ZgPCul


封裝CMP

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

cmp 包確定值的相等性。

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


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

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

使用 CPython,id返回內(nèi)存中對象的地址。在 Go 中,您可以通過 & 符號獲取指向?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)

}

上面示例的輸出在我的機器上如下所示:


0xc000016100 is 0xc000016100

0xc000016100 is not 0xc000016108


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

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

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

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

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


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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