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,复制迁移过去即可。