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

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

我怎樣才能創(chuàng)建一個(gè)適用于 k8s 包中任何類(lèi)型的函數(shù)?

我怎樣才能創(chuàng)建一個(gè)適用于 k8s 包中任何類(lèi)型的函數(shù)?

Go
莫回?zé)o 2022-12-26 10:48:01
抱歉,我對(duì) Go 很陌生,所以希望這不是一個(gè)愚蠢的問(wèn)題。我知道一般意義上的指針,但在 Go 語(yǔ)義上苦苦掙扎。我無(wú)法讓它工作:func DeleteOldCronJob(c client.Client, ctx context.Context, namespace string, name string) error {    cronJob := batchv1beta1.CronJob{}    key := client.ObjectKey{        Namespace: namespace,        Name:      name,    }    return DeleteOldAny(c, ctx, name, key, &cronJob)}func DeleteOldAny(c client.Client, ctx context.Context, name string, key client.ObjectKey, resource interface{}) error {    err := c.Get(ctx, key, resource)    if err == nil {        err := c.Delete(ctx, resource)        if err != nil {            return err        }    } else {        return err    }    return nil}我得到一個(gè)錯(cuò)誤:interface {} does not implement "k8s.io/apimachinery/pkg/runtime".Object (missing DeepCopyObject method)關(guān)鍵是我可以在多種不同類(lèi)型上重用 DeleteOldAny,使我的代碼庫(kù)更緊湊(我可以只復(fù)制+粘貼 DeleteOldCronjob 并更改類(lèi)型)。據(jù)我所知,Go 中指向接口的指針通常是錯(cuò)誤的。另外,我導(dǎo)入的 k8s 類(lèi)型只是一個(gè)結(jié)構(gòu)。所以,我想既然它是一個(gè)結(jié)構(gòu)而不是一個(gè)接口,我應(yīng)該像這樣傳遞資源 aa 指針:        err := c.Get(ctx, key, &resource)但這給了我另一個(gè)錯(cuò)誤:*interface {} is pointer to interface, not interface所以我有點(diǎn)卡住了。我是注定要為每種類(lèi)型復(fù)制+粘貼相同的函數(shù),還是我犯了一個(gè)簡(jiǎn)單的語(yǔ)法錯(cuò)誤?
查看完整描述

2 回答

?
幕布斯7119047

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

func (client.Reader).Get(ctx context.Context, key types.NamespacedName, obj client.Object) error

Get retrieves an obj for the given object key from the Kubernetes Cluster. obj must be a struct pointer so that obj can be updated with the response returned by the Server.

所以采用模塊化方法并停止重復(fù)使用代碼的想法是正確的。


但是實(shí)現(xiàn)是錯(cuò)誤的,obj 將是你試圖從集群中獲取的資源,它應(yīng)該作為結(jié)構(gòu)指針傳遞給函數(shù)。


err := c.Get(ctx, key, &resource)

這里的資源應(yīng)該是一個(gè)結(jié)構(gòu),如Get、delete 等期望作為指向要傳遞的相應(yīng)對(duì)象的指針。


查看完整回答
反對(duì) 回復(fù) 2022-12-26
?
暮色呼如

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

幾乎答案是使用非結(jié)構(gòu)化包

我認(rèn)為你不能client.Get()沒(méi)有具體的類(lèi)型,這很荒謬。Go 確實(shí)是一種生硬冗長(zhǎng)的語(yǔ)言,不是嗎?


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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