一些常用的命令
拉取依赖
go get ...
在win环境中编译linux可执行程序
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
Go build ...
Code
抛出异常&异常捕获
// 抛出异常
panic("文件路径有误!")
// 异常捕获
defer ErrorHandle()
func ErrorHandle() {
if r := recover(); r != nil {
// 对报错进行处理,r -> 报错信息
}
}
MD5
func GenMd5(str1, str2 string) string {
str := str1 + str2 + hashStr
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
Url转Byte数组
func UrlToByte(url string) []byte {
resp, _ := http.Get(url)
body, _ := ioutil.ReadAll(resp.Body)
return body
}
Go操作文件
// 读取
func LoadConfig() []byte {
var rootPath, _ = filepath.Abs(path.Dir(os.Args[0]))
path := rootPath + "/conf.yml"
file, err := os.Open(path)
if err != nil {
panic("文件未找到!")
}
defer file.Close()
// fileContent -> 文件内容 (byte[])
fileContent, _ := ioutil.ReadAll(file)
return fileContent
}
// 写入
func SaveFile(url, content string){
file, err := os.OpenFile(url, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0777)
if err != nil {
panic("文件路径有误!")
}
defer file.Close()
_, err = file.Write([]byte(content))
if err != nil {
panic("保存文件失败...")
}
}
// 删除
func RemoveFile(url string){
os.Remove(url)
}
// 创建
func CreateFile(url, content string){
file, err := os.Create(url)
if err != nil {
panic("操作失败!")
}
file.Close()
// 创建成功之后保存
msg = SaveFile(url, content)
}
Go的一些特性
(和java相比
- 单一方法可以返回多个值,解决了Java返回集合的痛点
- 可以直接编译成linux/win的可执行程序,不需要装环境
Java的部署方式一般都是打包成.jar文件,所以需要在服务器上先配置好运行环境
- 依赖导入在我看来,看似比Java麻烦,实则更加方便
然后则是命名这里的坑,Java一般都是类名首字母大写,方法名首字母小写,Go中方法名小写则会找不到
Comments | NOTHING