使用go开发的小tips

  1. 开启go mod
  2. GOROOT是你下载的go编译器的目录。GOPATH的位置是Go开发的工作空间,比如可用于保存Go项目的代码和第三方依赖包。
  3. 下载不了包多半是镜像源有问题,什么阿里七牛都试下
  4. go mod tidy可以拉取未下载的包,移除没用上的包
  5. 进行web开发时热重载:gin框架的六种热加载方法,你都知道吗。windwos的可能报错说找不到命令,参考windows下使用Air热加载Go程序的配置
  6. 新建项目直接在空文件夹内使用go mod init 项目名,注意这个项目名就是你的项目内的根package名称了,然后在根目录下创建main.go和main函数,然后逐步go get引入第三方包
  7. 每个文件夹里面的所有go文件必须同一个package名,package名可以不和文件夹名称一致。引入本地的包就用项目名/包名,前面可以起别名,不然这个包名就是模块名,用模块名.xxx访问模块内的变量和函数等
  8. 同一个Package内的变量和函数是共享的,这意味着同package可以跨文件像调用自身文件内的变量和函数一样进行调用,不需要像什么import xxx from ‘./xxxx’
  9. 所有的变量和函数(包括结构体属性和方法),首字母大写才是public的,否则都是private
  10. go有个可以支持json时重命名的玩意,如下
    type Result struct {
    	Success bool                   `json:"success"` 
    	Msg     string                 `json:"msg"`     
    	Data    map[string]interface{} `json:"data"`
    }
    
  11. 每个go文件内的func init(){}是这个文件被访问后立马会执行的函数,可以用它进行包内变量的初始化
  12. go有个类似Java的Object类的东西: interface{}。当然也有类型断言。对于interface{}需要强转回去。
    var x interface{}=7
    i:=x.(int)
    
  13. interface根据自己原来的类型进行switch判断
    switch i := x.(type) {
    case nil:
      printString("x is nil") // i的类型是 x的类型 (interface{})
    case int:
      printInt(i) // i的类型 int
    case float64:
      printFloat64(i) // i的类型是 float64
    case func(int) float64:
      printFunction(i) // i的类型是 func(int) float64
    case bool, string:
      printString("type is bool or string") // i的类型是 x (interface{})
    default:
      printString("don't know the type") // i的类型是 x的类型 (interface{})
    }
    
  14. golang没有set这种集合,但是有map,可以用值统一为struct{}的map来作为集合使用,只关心key
    var clients = make(map[string]struct{})
    
  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值