尽量不要使用ORM,简单的数据库交互是会省很多事。
10年的资兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整资兴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“资兴网站设计”,“资兴网站推广”以来,每个客户项目都认真落实执行。
但是一旦查询语句越来越复杂,关联表越来越多,当你发现正在使用的ORM框架做不到时再换其他框架代价会很大。为什么有那么多框架?就是没有一个框架能解决所有哪怕是大多数问题。
建议只使用数据库驱动库,database/sql库,可以完成所有go语言与数据库的交互。
先看一下目录结构,注意这里的src名称是必须的,go在设置了GOPATH后,默认会添加src去寻找package,暂未查询是否有方法不按照src查询
根据上面的描述,Go语言中通过包中函数的名称来区分公共函数和私有函数,我们在main函数中是无法调用myPrivateFunc的
此时如果执行通过go run方式执行,会看到如下的提示信息,这与大部分语言对于包管理方式相关,所以我们通过两种不同的方法来让代码执行起来
返回如下,这里面对我们后续执行有影响的两个参数GO111MODULE和GOPATH
如果要使用gopath模式引用包,则需要关闭mod模式
设置GOPATH为当前路径,即main.go所在的路径
此时再查看go env时,GOPATH已经发生改变
我们再次尝试执行代码
可以看到public函数被调用
expvar 包是 Golang 官方提供的公共变量包,它可以辅助调试全局变量。支持一些常见的类型: float64 、 int64 、 Map 、 String 。如果我们的程序要用到上面提的四种类型(其中,Map 类型要求 Key 是字符串)。可以考虑使用这个包。
这些基础的功能就不多说了,大家可以直接看官方的 文档 。
看源码的时候发现一个非常有意思的调试接口, /debug/vars 会把所有注册的变量打印到接口里面。这个接口很有情怀。
感觉这个包还是针对简单变量,比如整形、字符串这种比较好用。
看到就写了,并没有什么沉淀,写得挺乱的。这个包很简单,但是里面还是有些可以借鉴的编码和设计。新版本的 Golang 已经能解析整形为 Key 的哈希表了,这个包啥时候能跟上支持一下?