引用結構字段我有以下文件夾結構:從另一個包
.
├── Makefile
├── README.md
├── myproject
│ ├── handlers
│ │ └── authorize_handler.go
│ ├── models
│ │ ├── id_token.go
│ ├── server.go
從authorize_handler.go
我嘗試從id_token.go
文件中引用IdToken.idType
領域。
authorize_handler.go
package handlers
import (
"encoding/json"
"log"
"net/http"
"myproject/models"
)
func AuthorizeHandler(rw http.ResponseWriter, req *http.Request) {
idToken := new(models.IdToken)
decoder := json.NewDecoder(req.Body)
err := decoder.Decode(&idToken)
if err != nil {
panic(err)
}
log.Println(idToken.idType)
}
id_token.go
package models
type IdToken struct {
id string `json:"id" type:"string" required:"true" max_length:"50"`
idType string `json:"idType" type:"idType" required:"false"`
}
當我server.go
使用go run server.go
我收到以下錯誤啓動:
handlers/authorize_handler.go:29: idToken.idType undefined (cannot refer to unexported field or method idType)
將IdToken
移至authorize_handler.go
確實可以解決問題。將idType
更改爲IdType
不會。
任何想法或指針分享?
將字段名稱更改爲「IdType」時會得到什麼結果?出口是以資本化爲基礎的。如果你想從另一個包中引用它,它需要是大寫。 – captncraig 2015-03-31 18:19:59
@captncraig我不知道這裏發生了什麼,但是現在當我大寫'Id'和'IdType'時,它就可以工作了。 – 2015-03-31 19:59:13