Spe*_*ton 2 google-app-engine go google-cloud-datastore
出于某种原因,当我尝试将布尔数据存储在Google Apps数据存储区中时,它始终存储为false.
我的实体定义如下所示:
type Link struct {
Name string //Coloquial label for link. Set by original User.
...
isOpen bool //Tells us whether anyone can rewrite the link. Set by original User.
isPerminant bool //Tells us whether link should be saved forever.
isFlagged bool //Tells us whether the content has ever been flagged inappropriate.
}
Run Code Online (Sandbox Code Playgroud)
我创建一个对象并分配如下值:
//Create Link from form data
l := Link{
Name: r.FormValue("name"),
...
isOpen: r.FormValue("open")=="on",
isPerminant: r.FormValue("perminant")=="on",
isFlagged: r.FormValue("flagged")=="on",
}
Run Code Online (Sandbox Code Playgroud)
我通过运行以下代码来验证数据:
//Put the Link in the datastore
lKey, err := datastore.Put(c, datastore.NewIncompleteKey(c, "Link", nil), &l)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
var newLink Link
if err = datastore.Get(c, lKey, &newLink); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
newLink output value: {[name] ... false false false}
Run Code Online (Sandbox Code Playgroud)
即使我为其中一个属性硬编码真值,它们仍然是假的!WHHHHHHYYYY ???
尝试在资本I中Is:
type Link struct {
Name string //Coloquial label for link. Set by original User.
IsOpen bool //Tells us whether anyone can rewrite the link. Set by original User.
IsPerminant bool //Tells us whether link should be saved forever.
IsFlagged bool //Tells us whether the content has ever been flagged inappropriate.
}
Run Code Online (Sandbox Code Playgroud)
.
//Create Link from form data
l := Link{
Name: r.FormValue("name"),
IsOpen: r.FormValue("open") == "on",
IsPerminant: r.FormValue("perminant") == "on",
IsFlagged: r.FormValue("flagged") == "on",
}
Run Code Online (Sandbox Code Playgroud)
对于要保存到数据存储区的字段,必须将其导出.即以大写字母开头.有关更多信息,请阅读Effective Go的名称部分
| 归档时间: |
|
| 查看次数: |
425 次 |
| 最近记录: |