Go经验总结----2017.07

时间:2021-02-06 01:44:12

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) //小数转换为字符串 %f
data := fmt.Sprintf("%d", ) //整数转换为字符串 %d
data := fmt.Sprintf("%v", 33.3) //小数或者整数都通用 %v
sW := uint32(apiReq.ScreenWidth) //int32转换为uint32 【字符串转换为float】
lat, _ := strconv.ParseFloat(apiReq.Lat, )
fmt.Println(lat) //float64
fmt.Println(float32(lat)) //float32 【字符串转换为int】
int,err:=strconv.Atoi(string) #string到int
int64, err := strconv.ParseInt(string, , ) #string到int64
string:=strconv.Itoa(int) #int到string
string:=strconv.FormatInt(int64,) #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=,CC=,DD=
如果是 AA = -iota,那么BB=-,CC=-,DD=-
如果是 AA = iota+,那么BB=,CC=,DD=
13.判断一个数组类型的字段是否为空数组,len(value)==0
if len(fRespJson.ImgUrls) == {

}

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

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

15.打印输出

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

Visual Code 配置:

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

Go经验总结----2017.07的更多相关文章

  1. 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09

    作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09     据日本*提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...

  2. CVTE后台开发实习生岗位面试经验(2017.3)

    3月份我在看准网发布过这篇面经,现在转过来.原文链接:http://www.kanzhun.com/gsmsh10433357.html 投递岗位是web后台实习生 做完笔试后一天对方即发来面试通知 ...

  3. 2017.07.07【NOIP提高组】模拟赛B组

    Summary 因为某种无法抗拒的原因,今天没有打比赛,所以也就没有那种心态.今天的题目有状压DP和二分,这套题不难也不简单,适中,适合我这种渣渣来做.在改题时,发现了许多问题.我连欧拉函数的计算都记 ...

  4. Work 3(工作类) (2017.07.01)

  5. 2017.07.14【NOIP提高组】模拟赛B组

    Summary 这次比赛因为迟到了,少了很多时间,也受到了相应的惩罚,这是好的,是个标记牌,警醒着我.这次比赛的题目很难,也就是说,大家的得分都很低,总的来说,收获还是很大的,因为有非常多的技巧被掌握 ...

  6. 2017.07.11【NOIP提高组】模拟赛B组

    Summary 今天的比赛打得还不错,第一题被同桌灌输的贪心,纯模拟*了,然后steal的看了一下,发现怎么也对不了,一直在检查.最后10分钟才找出反例,推出动态规划方程,没有想到怎么转移,比赛就结 ...

  7. 2017.07.10【NOIP提高组】模拟赛B组

    Summary 今天题目总体不是难,但是分数很低,只有100+10+30,其中第二题还是以前做过的,第一题设计数论,而且以前做过同一个类型的题目,比赛推了很长时间.第三题时以前做过的原题,是贪心没学好 ...

  8. 2017.07.09【NOIP提高组】模拟赛B组

    Summary 今天放假,比赛于是就没有打了,但是看了一下题,发现都挺简单了,不想码~╮(╯▽╰)╭懒虫一条.最后一题居然做过原题.这次比赛让我对并查集“刮目相看”,对贪心感到“前途无量”,觉得树形D ...

  9. 2017.07.06【NOIP提高组】模拟赛B组

    Summary 今天比赛感觉题目很奇葩,都可以用许多简单方法来做,正确性都显然,当然也有点水,也就是说是考我们的数感和数学知识,而程序,只是代码的体现. 这次的时间安排感觉不错,因为很快就打完最后一道 ...

随机推荐

  1. django 模型

    一.project 与app之间的关系 1个project中可包含多个app eg:包含两个app的project的结构

  2. spring-boot支持双数据源mysql+mongo

    这里,首先想说的是,现在的web应用,处理的数据对象,有结构化的,也有非结构化的.同时存在.但是在spring-boot操作数据库的时候,若是在properties文件中配置数据源的信息,通过默认配置 ...

  3. jquery日历datepicker的使用方法

    jquery.ui.datepicker.js 用法: http://blog.csdn.net/zb0567/article/details/7906238   原文  http://blog.cs ...

  4. LAMP 环境 快速安装

    (一)安装Apache 1.下载安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 yum install zlib-devel -y wget http://m ...

  5. Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。

    Python urllib模块urlopen()与urlretrieve()的使用方法详解   1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...

  6. python3网络编程之socketserver

    本节主要是讲解python3网络编程之socketserver,在上一节中我们讲到了socket.由于socket无法支持多用户和多并发,于是就有了socket server. socket serv ...

  7. BZOJ3490 : Pa2011 Laser Pool

    与横线以及竖线的交点个数很容易求,那么只要求出横线竖线交点与运动轨迹的交点数即可. 运动轨迹可以划分成若干条贯穿边界的斜线,对于第一条和最后一条,可以用bitset暴力统计. 对于中间的部分,斜线都是 ...

  8. 实现类QQ的编辑框

    第一步,平面效果.Windows系统有几个消息专门用来处理Windows组件的边框部位,那就是WM_NCCALCSIZE和WM_NCPAINT这两个消息,从消息名字看来NC这个就代表着No Clien ...

  9. Vue全家桶介绍

    一直不清楚全家桶是什么玩意,上网搜了一下,才知道就是平时项目中使用的几个依赖包,下面分享一下 Vue 全家桶介绍 Vue有著名的全家桶系列,包含了vue-router(http://router.vu ...

  10. cetos7 systemd 详解

      CentOS7/RHEL7 systemd详解 目录1. 为什么是systemd(1) 关于Linux服务管理(2) SysV init的优缺点(3) UpStart的改进(4) systemd的 ...