簡體   English   中英

在供應商文件中修改結構類型

[英]Modifying a struct type inside vendor files

我必須修改供應商文件中的結構。 假設這是結構在供應商文件中的方式

type sampleStruct struct {
    sampleStringvar1       string
    sampleStringvar2       string
}

我需要像這樣再添加一個字段

type sampleStruct struct {
    sampleStringvar1       string
    sampleStringvar2       string
    sampleBoolVar          bool
}

我怎樣才能做到這一點? 像這樣修改供應商變量是一種好習慣嗎? 如果不是,最好的方法是什么?

如果您不想分叉一個供應商的庫並將其替換為您自己的庫,那么最佳做法是在您的項目中使用包裝器。

包裝器 object 將是結構:

  • 引用sampleStruct實例
  • sampleBoolVar boolean

那是:

type MySampleStruct {
    ss            *sampleStruct 
    sampleBoolVar bool
}

這樣,您可以從sampleBoolVar中受益,而供應商的庫仍然像往常一樣使用sampleStruct

但是, blackgreen 在評論中指出

您如何能夠引用一個未導出的結構,就像sampleStruct似乎在它自己的 package 之外?

這是正確的,上述建議不是關於公開私有變量,而是關於根據您從sampleStruct中看到的內容自行管理該變量。
根據庫的行為,這可能是不可能的。

像這樣修改供應商變量是一種好習慣嗎?

絕對不。

如果不是,最好的方法是什么?

分叉供應商模塊並在go.mod中使用replace指令引用分叉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM