博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go经验总结----2017.07
阅读量:6435 次
发布时间:2019-06-23

本文共 2144 字,大约阅读时间需要 7 分钟。

1. 自定义返回一个错误信息:return errors.New("invalid action)

2.golang这种所有被大括号包裹起来的语句都不能在外面被调用。例如:if xxx{},switch xxx{},for xxx{},需要先在外面定义:

var name := ""if xxx{    name="zhangsan"}else{    name="lisi"}println(name)
3. 跨包调用,函数名一定要大写,相当于PHP的public,例如:db.GetUserName();

4. 判断Map中是否存在某个key:

_, ok := query["name"]  if ok {     delete(query,"name")  }

5. 删除Map的一个key,使用delete(相当于PHP的unset):delete(query,"name")

6. 数组转换为字符串:strings.Join;字符串分割成数组:strings.split
 
7. 函数返回多个值,如果一个都不想接收,可以忽略等号前面的,即:
func(),而不用写成:
_, _ := func()
 
8.创建 map:
query:=make(map[string][]string)query["id"] = []string{“aaa”,”bob”,”ccc"}

9. int64转换为字符串:

func Int642Str(num int64) string {    return strconv.Itoa(int(num))}

 

10. 一些数据类型转换的汇总:

data := fmt.Sprintf("%f", 33.3) //小数转换为字符串 %fdata := fmt.Sprintf("%d", 28) //整数转换为字符串 %ddata := fmt.Sprintf("%v", 33.3) //小数或者整数都通用 %vsW := uint32(apiReq.ScreenWidth) //int32转换为uint32【字符串转换为float】lat, _ := strconv.ParseFloat(apiReq.Lat, 32)fmt.Println(lat) //float64fmt.Println(float32(lat)) //float32【字符串转换为int】int,err:=strconv.Atoi(string)   #string到int int64, err := strconv.ParseInt(string, 10, 64)   #string到int64  string:=strconv.Itoa(int)   #int到string  string:=strconv.FormatInt(int64,10)    #int64到string【说明】d:数字、 s:字符串、f:float、v:所有

 

11. 拼接字符串:

fmt.Sprintf("%v", apiReq.Lat) + "," + fmt.Sprintf("%v", apiReq.Lng) #可以简写为:fmt.Sprintf("%v,%v",apiReq.Lat,apiReq.Lng)

12. 关于iota

const (    AA = iota    BB    CC    DD)上面的代码 AA=iota,表示从0开始,那么下面的BB=1,CC=2,DD=3如果是 AA = -iota,那么BB=-1,CC=-2,DD=-3如果是 AA = iota+10,那么BB=11,CC=12,DD=13

 

13.判断一个数组类型的字段是否为空数组,len(value)==0
if len(fRespJson.ImgUrls) == 0{ }

14. 获取当前日期(2006-01-02 15:04:05 是固定数值):

date := time.Now().Format("2006-01-02 15:04:05")fmt.Println(date)os.Exit(1)

15.打印输出

打印输出:fmt.Println(123) 或者 println(123)终止程序:os.Exit(123)打印数据结构:spew.Dump(string(buf)) //类似于PHP的var_dump

 

 

 

 

 

 


Visual Code 配置:

【基本配置】// 将设置放入此文件中以覆盖默认设置{"window.zoomLevel": 1,"editor.fontSize": 14,"go.gopath": "/Users/renxing/Desktop/go","go.goroot": "/usr/local/go""workbench.editor.enablePreview": false #设置新打开的文件标签不覆盖之前的(很有用!!)}【vim .zshrc】source $ZSH/oh-my-zsh.shsource /etc/profile

 

 

 

 

 

 

 

 
 
 
 
 

转载于:https://www.cnblogs.com/rxbook/p/7245284.html

你可能感兴趣的文章
大型网站技术架构(四)--核心架构要素 开启mac上印象笔记的代码块 大型网站技术架构(三)--架构模式 JDK8 stream toMap() java.lang.IllegalStat...
查看>>
Docker极简入门
查看>>
servlet单实例多线程模式
查看>>
Keras Data augmentation(数据扩充)
查看>>
VTK计算网格模型上的最短路径
查看>>
open-falcon的邮件报警
查看>>
iOS9的几个新关键字(nonnull、nullable、null_resettable、__null_unspecified)
查看>>
GraphQL入门2
查看>>
可以落地的DDD到底长什么样?
查看>>
使用 Content-Encoding: br 替换 Content-Encoding: gzip
查看>>
【Linux】cp命令
查看>>
基于matplotlib的数据可视化 - 热图imshow
查看>>
linux编译安装mysql5.1.x
查看>>
Tensorflow get_variable和Varialbe的区别
查看>>
CSS魔法堂:那个被我们忽略的outline
查看>>
学习ASP.NET Core Razor 编程系列十八——并发解决方案
查看>>
[翻译]pytest测试框架(二):使用
查看>>
Java-线程间通信小结
查看>>
PHPUnit简介及使用(thinkphp5的单元测试安装及使用)
查看>>
人工智能热门图书(深度学习、TensorFlow)免费送!
查看>>