通用技术 Go macaron (马卡龙) 库 (一)

陈子昂 · 2020年08月12日 · 最后由 陈子昂 回复于 2020年08月12日 · 2874 次阅读
前言

马卡龙不是说好的和美式咖啡搭配吗?国内开源作者写的马卡龙框架是从马天尼框架那边继承了特性。
回归正题,介绍马卡龙库并且对 Go 语法进行一次介绍是这个文章目的。
macaron 的经典实例会让开发者觉得好用又简洁又靓,然后几脚下去拔都拔不出来,这做法和 Go 语言真是一毛一样啊。

macaron

go.mod 管理 ,版本不低于 1.6
官网地址 https://go-macaron.com/starter_guide

经典例子
//编译可执行程序需要package main
package main
import "gopkg.in/macaron.v1"

//创建注册运行,注册到路由也是注册的一种
func main(){
    //go语言的方法一般都是大写字母开头,macaron.Classic() 创建马卡龙基础实例或者叫经典实例,:=是声明定义并且自动推导类型
    mr := macaron.Classic() 
   //注册路由访问域名(根路由),方法Get,func()是一个匿名函数
    mr.Get("/",func() string{    
       return "hello cat"  //基础的处理器,返回String
    })
    mr.Run()
}

PS:这里 go 语言的 markDown 好像有点问题啊,有二行是红色的。
然后在外面 go run main.go 就运行了,运行后启动发现是默认端口,mode 是开发者,啧啧,看来可以自定义的很多。
上面敲这段代码也发现打出函数回车后,后半段是...说明后面还可以添加不定长的参数/内容。

处理器是个什么鬼,只是叫法问题,为传入 Serives 处理逻辑的对象,这里继续改下上面一段的信息

mr.Get("/".func() (int,string){
       //基础的处理器,返回多个参数 int,String,内部是一个http.ResponseWriter的响应流里面
       return 200,"hello cat"  //这里就是可以暴露给前端的,当然这块更推崇用对象,也就是Go的结构体
    })
结尾

马卡龙横向对比支持了 flask 的核心功能,也支持无限路由组的无限嵌套,flask 在这块处理上比马卡龙更麻烦。
有志学习 Go 语言的互联网同行可以从这个来切入学习也是不错的。
如果读者正好是游戏同行,可以从 tcpx 这个库来入手 socket,掌握 session 和中间件套餐后,然后再学习 socket 基础库。
学习了 Go 后,感觉自己 Python 已经忘记得差不多了,所以不要说猫只会 Python 了。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

这个是用来写服务器吗,跟 gin echo 有什么区别吗

少年 回复

帖子还得刷新下,马卡龙是更灵活的 gin,也是 web 框架,这个帖子主要是说下语法和多介绍一个库。

少年 回复

谢谢,直接学语法比较枯燥,下个文章延伸,会把马卡龙扩展和结构体这些东西塞进去。

陈子昂 Go macaron (马卡龙) 库 (二) 中提及了此贴 08月13日 20:53
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册