GO lang语法错误:意外的名称,应为)

ncecgwcz  于 2023-08-01  发布在  Go
关注(0)|答案(4)|浏览(105)

我最近开始学围棋,花了几个小时也不知道哪里出了问题。

我的代码如下:

func preference(cc *core.ComponentContext, w http.ResponseWriter, req *http.Request){

userID, err := core.PostParam(req, "user_id")
key, err := core.PostParam(req, "key")
value, err := core.PostParam(req, "value")  
if err != nil {
    cc.Error("Error reading the user id:", err.Error())
    msg := fmt.Sprintf("user_id: %s", err.Error())
    http.Error(w, msg, http.StatusBadRequest)
    return
}

// compile time error on below line
response := models.UserPrefer(cc, userID int64, key string, value string)

b, err := json.Marshal(response)
if err != nil {
    http.Error(w, "Internal Error", http.StatusInternalServerError)
    return
}
fmt.Fprintf(w, string(b[:]))

字符串
}
以下错误是throw**语法错误:这可能很简单,但以我有限的Go lang知识,我无法弄清楚。

dpiehjr4

dpiehjr41#

调用方法时传递类型
使用

response :=models.UserPrefer(cc, userID, key, value)

字符串
而不是

response :=models.UserPrefer(cc, userID int64, key string, value string)

sxissh06

sxissh062#

当调用一个函数时,只传递参数。不需要传递参数的类型。

kmbjn2e3

kmbjn2e33#

当我在示例化一个类型时忘记放冒号时,我得到了一个非常类似的错误。创建了一个最小的例子来说明。
prog.go:11:12:语法错误:意外的文本“Sedimental”,应为逗号或}
https://play.golang.org/p/QKmcOHnsF7C
在这个例子中,我只需要在属性名后面添加一个冒号。

r := Rock{
    RockType:   "Sedimentary", // the ":" was missing, and is in the go play link above
}

字符串

tpgth1q7

tpgth1q74#

我得到这个错误是因为我使用reserved关键字作为方法的参数名称。
引发此错误的代码段:

func setCustomTypeData(set bson.M, type string) {

}

字符串
修复此问题的代码段:

func setCustomTypeData(set bson.M, customManagedType string) {

}

相关问题