方法:有一个老大(一般是结构体),(t *TypeDemo) ,并且必须通过(一般是结构体)调用
func (t *TypeDemo) add() {
}
函数:无老大,必须通过包来调用
func add() {
}
他们可以存在同于一个文件里,像结构体和方法,这个很好理解,就是一个类;但是同时存在函数是什么意思?
其实这些函数,就相当于类的静态方法。比如单例模式的getInstant(),工厂模式的Factory.create(),方便更好的操作类;当然,可以在类的外部调用的方法中,对类进行操作,比如
func main() {
http.ListenAndServe(":1210", nil) //这里的ListenAndServe就是函数,必须包来调用
}
可以改为
func main() {
server := &http.Server{
Addr: ":1210",
WriteTimeout: time.Second * 3, //设置3秒的写超时
Handler: mux,
}
server.ListenAndServe() //这里的ListenAndServe就是方法,必须结构体来调用
}