2015-05-26 82 views
0

我有以下兩種結構:不能嵌入結構的結構

type Profile struct { 
    Email  string `json:"email"` 
    Username  string `json:"username"` 
    Name   string `json:"name"` 
    Permissions []string `json:"permissions"` 
} 

type Session struct { 
    Token string `json:"token"` 
    User Profile `json:"user"` 
} 

,我試圖創建一個新的Session使用:

session := Session{token, profile} 

其中token是一個字符串和配置文件是Profile都是以前創建的。

我得到的錯誤不能使用配置文件(類型*配置文件)作爲類型配置文件字段值當我編譯。

我錯過了什麼嗎?

回答

4

您的profile是一個指針。重新調整你的Session

type Session struct { 
    Token string `json:"token"` 
    User *Profile `json:"user"` 
} 

或取消對它的引用。

session := Session{token, *profile} 
+0

謝謝 - 什麼dereuencing實際上意味着呢? – tommyd456

+0

當你取消引用一個指針時,你得到指針(它是一個地址)指向的值。 '* Profile'類型是'Profile'值的地址。 '* p',其中'p'是類型'* Profile',將得到該值。 –