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

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

使用嵌入式結(jié)構(gòu)的構(gòu)造函數(shù)實例化結(jié)構(gòu)

使用嵌入式結(jié)構(gòu)的構(gòu)造函數(shù)實例化結(jié)構(gòu)

Go
30秒到達(dá)戰(zhàn)場 2022-10-24 16:30:06
我是一名 Go 新手,試圖覆蓋適用于 DynamoDB 的 AWS Go 開發(fā)工具包中的一些方法?;旧希蚁朐?DynamoDB 客戶端的某些方法中添加一些日志記錄。我擁有的代碼是:type dynamoDBLogger struct {  dynamodb.DynamoDB}func (d *dynamoDBLogger) DeleteItemWithContext(ctx context.Context, item *dynamodb.DeleteItemInput) (*dynamodb.DeleteItemOutput, error) {    logger.Debug("Deleting from DynamoDB: %+v", *item)    return d.DynamoDB.DeleteItemWithContext(ctx, item)}換句話說,它只是在實際調(diào)用之前添加了一個日志記錄語句。此代碼編譯?,F(xiàn)在的問題是如何創(chuàng)建一個dynamoDBLogger?實例化 a 的唯一方法DynamoDB是使用方法:func New(...) *dynamodb.DynamoDB在dynamodb包中。我可以以某種方式使用它來構(gòu)建 a 的實例dynamoDBLogger嗎?不確定它是否會起作用,但我希望該*dynamoDbLogger類型可用作*dynamodb.DynamoDB.編輯:我實際上注意到以下失?。篺unc GetDynamoClient(sess *session.Session) *dynamodb.DynamoDB {    svc := dynamoDBLogger{}    svc.DynamoDB = *dynamodb.New(sess)    return &svc}即類型系統(tǒng)不允許用 a*dynamodb.DynamoDB替換 a *dynamoDBLogger。我想知道 Go 的類型系統(tǒng)是否允許我想要完成的事情,因為dynamodb.DynamoDB不是接口?
查看完整描述

1 回答

?
紅糖糍粑

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

最好使用 dynamo db 接口。它提供了為測試創(chuàng)建模擬的可能性。例子:


package main


import (

    "github.com/aws/aws-sdk-go/service/dynamodb/dynamodbiface"

)


type dynamoDBLogger struct {

    DynamoDBAPI

}


func NewDynamoDB() dynamodbiface.DynamoDBAPI {

    svc := &dynamoDBLogger{

        DynamoDBAPI: dynamodb.New(sess),

    }

    return &svc

}


// in tests


type mockDB struct {

    dynamodbiface.DynamoDBAPI

}


func NewMockDB() dynamodbiface.DynamoDBAPI {

}

在模擬中,您需要實現(xiàn)程序中實際使用的唯一方法。


完整示例在:https ://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/dynamodbiface/


查看完整回答
反對 回復(fù) 2022-10-24
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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