2015-05-25 74 views
-1

我要解析一些嵌套的JSON,轉化成細末類型,像這樣:Golang - 通結構作爲參數傳遞給函數

type Config struct { 
Mail   struct { 
        From  string 
        To  string 
        Password string 
       } 
Summary  struct { 
        Send  bool 
        Interval int 
       } 
} 

現在,我想打電話給每個鍵的功能(郵件,摘要),我試過它是這樣的: utils.StartNewMailer(config.Mail) 問題是,我如何構造被調用的函數,我試圖鏡像Mail結構(並將其稱爲mailConfig),因爲我無法將任意結構作爲參數傳遞。
func StartNewMailer(conf mailConfig){ //...,但也不管用,我得到以下編譯器錯誤信息: cannot use config.Mail (type struct { From string; To string; Password string }) as type utils.mailConfig in argument to utils.StartNewMailer
我必須在每一個價值傳遞給被調用的函數或是否有更好的方式來做到這一點?

+0

你是什麼意思「我試圖鏡像'郵件'結構」? – tarrsalah

+0

被調用的函數住在另一個模塊,所以我基本上沒有出現: '型mailConfig結構{ \t從字符串 \t串 \t密碼字符串 }' –

回答

0

utils.mailConfig字段應該輸出,如在Config類型的字面結構字段中。

type mailConfig struct { 
    From  string 
    To  string 
    Password string 
} 

我建議將內部結構聲明爲類型本身而不是使用結構文字。

type Mail struct { 
    From  string 
    To  string 
    Password string 
} 

type Summary struct { 
    Send  bool 
    Interval int 
} 

type Config struct { 
    Mail 
    Summary 
} 

func StartNewMailer(Mail mailConfig) 
+0

謝謝,解決它。 –

相關問題