I have started learning Go lang recently.I have spend couple of hours but can't figure out what's wrong with this.
Here is my code:
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
}
response :=models.UserPrefer(cc, userID int64, key string, value string) --> compile time error
b, err := json.Marshal(response)
if err != nil {
http.Error(w, "Internal Error", http.StatusInternalServerError)
return
}
fmt.Fprintf(w, string(b[:]))
}
Following error is throw syntax error: unexpected name, expecting ) it's probably simple, but with my limited knowledge in Go lang I can't figure out.
You are passing types when calling methods
Use
response :=models.UserPrefer(cc, userID, key, value)
instead of
response :=models.UserPrefer(cc, userID int64, key string, value string)
While calling a function just pass the parameter. You do not need to pass the type of parameter.
I got an error very similar to this when I forgot to put in a colon while instantiating a type. Created a minimum example to illustrate.
prog.go:11:12: syntax error: unexpected literal "Sedimentary", expecting comma or }
https://play.golang.org/p/QKmcOHnsF7C
In this example, I just needed to add a colon after the attribute name.
r := Rock{
RockType: "Sedimentary", // the ":" was missing, and is in the go play link above
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With