標籤:

go語言 reflect: Call with too few input arguments?

小白 剛開始接觸go語言 在嘗試io輸出的時候遇到了提示reflect: Call with too few input arguments

package controllers

import (

"fmt"

"http://github.com/astaxie/beego" // import your used driver

"io"

"net/http"

)

type UploadController struct {

beego.Controller

}

func (c *UploadController) NoUpload(w http.ResponseWriter, r *http.Request) {

io.WriteString(w, "&&&我的第一個頁面&&&&

&上傳圖片&&&
&&&&&&")

}

路由是這樣的

package routers

import (

"http://github.com/astaxie/beego"

"hello/controllers"

)

func init() {

beego.Router("/", controllers.MainController{})

beego.Router("/upload", controllers.UploadController{}, "get:NoUpload;post:Upload")

}

跪求講解


我跪求你不要用beego了,如果使用一個框架時遇到的問題你沒法直接解決,那就不要用它。用框架是為了降低複雜度,提高效率,然而你用它,只是自找麻煩。

簡單事情簡單做,用標準庫足夠了:

https://godoc.org/net/http

https://godoc.org/html/template

PHP、Python都有伺候新手得不錯的MVC框架,然而beego不是,不經過多年發展是不行的。再說了,現在的潮流是非MVC的web框架,用go再造一個MVC框架有什麼意義呢?再好也好不過PHP、Python、Java、Ruby那些成熟的。


建議多閱讀一下文檔。beego的控制器函數是不需要這樣傳參數的。相關文檔見:http://beego.me/docs/mvc/controller/controller.md另外,如果遇到這種問題,可以到beego的github issue里提issue[Issues · astaxie/beego · GitHub]發問。也可以到一些Go語言相關的QQ群里請教。


beego整體的使用性和代碼可讀性真的不怎麼好,僅僅做HTTP服務的話建議用gin,如果是做web的話,建議不要用Golang,go不適合干這個


入門可以,入門後趕緊忘掉這個框架。要不然寫出一堆爛代碼


推薦閱讀:

你希望 Go 2 有哪些改善和新特性?
R語言第一戰之數據結構初體驗
小鳥的live——畫畫與編程
大家閱讀過的編程經典書籍有哪些?
為什麼在編程相關的技術論壇里,很多人答非所問?

TAG:編程 | Go語言 |