在C#有automapper套件,可以將兩個相似的資料結構Mapping內容。
光是這個鏡射寫入屬性值的功能,讓我可以不用每次遇到類似的物件都要一個個屬性賦值,就已經非常好用了。
最近必須要些golang時,也遇到了類似的問題,目前找到一個還可以用的套件,特別記錄下來。
(其實是因為上次程式碼即便上了git也一下子找不到...哭...)
- import (
- "github.com/mitchellh/mapstructure"
- )
- type User struck{
- Id int
- Name string
- Phone string
- ....
- }
- type Member struck{
- Name string
- Phone string
- ...
- }
- //從資料庫讀取使用者後,將資料放入Member
- var member Member{}
- user := db.load(id)
- err = mapstructure.Decode(user, &member)
這樣就可以將相同屬性名稱的值寫入member。
假使兩個欄位名稱有出入該怎麼辦??
目前還沒有測試到那裡,也許這個套件也有提供類似的功能,今天簡單記錄到此。