介绍

          goLang开发常遇到一些问题,或者使用中的技巧,逐步积累,以便在开发中方便查找使用。

参考

 

技巧汇集

注:本人经常使用IDE工具为goland,下文都以此环境为例。

经常查阅Go标准库文档函数

IDE快捷键

 常用的Alt+Enter:如果复制过来的代码,引用包需要点此快捷键,呼出选择包

建议采用go module方式

一般设置go环境变量为GO111MODULE=on

建议开启go mod方式,打开Files->Settings...

注:

1. 启用Go modules方式后,project Go path就不用存了,否则可能会报错“$GOPATH/go.mod exists but should not“,因为使用Go moduels方式托管了,2种共存会有冲突。

2. 运行或测试执行时,go编译器会自动下载本模块依赖包,只要goroot、gopath、goproxy设置正确,就能正常运行任何一个go程序,这个在新手入门时需要注意的。
 

golang自动生成setter、getter方法

运行下载插件

>go get gitee.com/dwdcth/accessor 

建立类user.go

//go:generate accessor -type=User
package model
type User struct {
username string `access:"r,w"`
password string `access:"r,w"`
age int `access:"r,w"`
sex string `access:"r,w"`
}
//var userDatas=map[string]interface{}
func NewUser() *User {
return &User{}
}

 

点这里运行,即可生成user_accessor.go,

// Code generated by "accessor -type=User"; DO NOT EDIT.
package model
func (u *User) SetUsername(param string) {
u.username = param
}
func (u *User) GetUsername() string {
return u.username
}
func (u *User) SetPassword(param string) {
u.password = param
}
func (u *User) GetPassword() string {
return u.password
}
func (u *User) SetAge(param int) {
u.age = param
}
func (u *User) GetAge() int {
return u.age
}
func (u *User) SetSex(param string) {
u.sex = param
}
func (u *User) GetSex() string {
return u.sex
}
注意:这里的Set、Get,后面生成的名字没有首字母大写,是后来修改的。

如果想合并到user.go,复制迁移过去即可。