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

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

如何在 Go 中為接口分配指針

如何在 Go 中為接口分配指針

Go
阿晨1998 2022-06-01 17:33:28
package mainimport "fmt"type intr interface {    String() string}type bar struct{}func (b *bar) String() string {    return "bar"}type foo struct {    bar *intr}func main() {    bar1 := bar{}    foo1 := foo{bar: &bar1}     fmt.Println(foo1)}我得到一個(gè)編譯時(shí)錯(cuò)誤:不能在字段值中使用 &bar1 (type *bar) 作為 *intr 類型:*intr 是指向接口的指針,而不是接口為什么會(huì)發(fā)生這個(gè)錯(cuò)誤?如何分配foo.bar?
查看完整描述

2 回答

?
UYOU

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

您將其分配給指向接口的指針。將字段類型更改為接口后,它將起作用:


type foo struct {

    bar intr

}

很少需要指向接口的指針。


查看完整回答
反對(duì) 回復(fù) 2022-06-01
?
紫衣仙女

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

Uber-go 風(fēng)格指南 pointers-to-interfaces包含對(duì)您問(wèn)題的準(zhǔn)確答案,

您幾乎不需要指向接口的指針。您應(yīng)該將接口作為值傳遞——底層數(shù)據(jù)仍然可以是一個(gè)指針。一個(gè)接口有兩個(gè)字段: 一個(gè)指向某些類型特定信息的指針。您可以將其視為“類型”。和一個(gè)數(shù)據(jù)指針。如果存儲(chǔ)的數(shù)據(jù)是指針,則直接存儲(chǔ)。如果存儲(chǔ)的數(shù)據(jù)是一個(gè)值,則存儲(chǔ)一個(gè)指向該值的指針。如果希望接口方法修改底層數(shù)據(jù),則必須使用指針。

我的建議是盡快熟悉它,

希望能幫助到你


查看完整回答
反對(duì) 回復(fù) 2022-06-01
  • 2 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報(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)