ShowProgramCode

2023年9月26日 星期二

golang 的 automapper

在C#有automapper套件,可以將兩個相似的資料結構Mapping內容。
光是這個鏡射寫入屬性值的功能,讓我可以不用每次遇到類似的物件都要一個個屬性賦值,就已經非常好用了。
最近必須要些golang時,也遇到了類似的問題,目前找到一個還可以用的套件,特別記錄下來。
(其實是因為上次程式碼即便上了git也一下子找不到...哭...)

  1. import (
  2. "github.com/mitchellh/mapstructure"
  3. )
  4.  
  5. type User struck{
  6. Id int
  7. Name string
  8. Phone string
  9. ....
  10. }
  11.  
  12. type Member struck{
  13. Name string
  14. Phone string
  15. ...
  16. }
  17.  
  18. //從資料庫讀取使用者後,將資料放入Member
  19. var member Member{}
  20. user := db.load(id)
  21. err = mapstructure.Decode(user, &member)

這樣就可以將相同屬性名稱的值寫入member。
假使兩個欄位名稱有出入該怎麼辦??
目前還沒有測試到那裡,也許這個套件也有提供類似的功能,今天簡單記錄到此。