golang 时间戳_go语言学习笔记(13)-defer函数、字符串常用函数和时间日期函数...
函数-defer
在函数中,程序员经常需要创建资源(比如:数据库连接、文件句柄、锁等),为了在函数执行完毕后,及时的释放资源,go的设计者提供defer(延时机制)。
细节说明:
1:当go执行到一个defer时,不会立即执行defer后的语句,而是将defer后的语句压入一个栈中,然后继续执行函数下一个语句。
2:当函数执行完毕后,再从defer栈中,一次从栈顶取出语句执行(遵守栈 先入后出的机制)
3:在defer将语句放入栈时,也会将相关的值拷贝同时入栈。
4:在go中编程创建资源(比如:数据库连接、文件句柄、锁等),之后可以执行
defer file.Close() defer connect.Close()
这样在defer后可以继续使用创建资源,当函数完毕后,系统会依次从栈中取出语句关闭资源,这种机制非常简洁,可以让程序员不用再为在什么时候关闭资源而烦心。
变量作用域
1)函数内部声明/定义的变量叫局部变量,作用域仅限于函数内部。
2)函数外部声明/定义的变量叫全局变量,作用域在整个包都有效,如果其首字母为大写,则作用域在整个程序有效。
3)如果变量时在一个代码块,比如for/if中,那么这个变量的作用域就在该代码块
字符串中常用的函数
1:统计字符串的长度,按字节 len(str)
2:字符串遍历,同时处理有中文的问题 r:=[]rune(str)
3:字符串转整数: n,err := strconv.Atol("12")
4:整数转字符串 str = strconv.Itoa(12345)
5: 字符串转 []byte : var bytes = []byte("hello go")
6:[]byte 转字符串 : str = string([]byte{99,22,33})
7:10进制转2,8,16进制: str = strconv.Formatlnt(123,2)
8:查找子串是否在指定的字符串中: strings.Contains("seafood","foo") //true
9:统计一个字符串有几个指定的子串 : strings.Count("cheese"."e") //3
10:不区分大小写的字符串比较(==是区分字母大小写的): fmt.Println(strings.EqualFold("abc","Abc")) //ture
11: 返回子串在字符串第一次出现的index值,如果没有就返回-1:
strings.Index("NLT_abc","abc") //4
12:返回子串在字符串最后一次出现的index,如没用返回-1。
strings.LastIndex("go_golang","go") //3
13:将指定的子串替换成 另外一个子串:
strings.Replace("go go hello","go","go语言".n)
n可以指定你希望替换几个,如果n=-1,表示全部替换。
14:按照指定的某个字符,为分隔标识,将一个字符串拆分成字符串数组。
stings.Split("Hello,wrold,ok",",")
15:将字符串的字母进行大小写的转换:
strings.ToLower("GO") // strings.ToUpper("Go")//GO
16:将字符串左右两边的空格去掉:
strings.TrimSpace(" tn a long gopher ntrn ")
17:将字符串左右两边指定的字符去掉 :
strings.Trim(" ! hello ! ", "!") //hello
18:将字符串左边指定的字符去掉:
strings.TrimLeft(" ! hello ! ", "!") //hello!
19:将字符串右边指定的字符去掉:
strings.TrimRight(" ! hello ! ", "!") // !hello
20: 判断字符串是否以指定的字符串开头:
strings.HasPrefix("ftp:///321231231231","ftp") //true
20: 判断字符串是否以指定的字符串结束:
strings.HasSuffix("ftp:///321231231231.jpg","abc") //false
时间和日期相关函数
2006/01/02 15:04:05 这个字符串的各个数字是固定的,必须这样写
时间的常量
常量的作用;在程序中可用来获取指定时间单位的时间,比如想得到100毫秒即:
100 * time.Millisecond // time.second / 10 这种写法就是错误的
2)休眠
func Sleep (d Duration)
3)获取当前的unix时间戳 和 unixnano 时间戳 (作用是可以获取随机数字)
题目练习:编写一段代码来统计函数test()运行时间
golang 时间戳_go语言学习笔记(13)-defer函数、字符串常用函数和时间日期函数...相关推荐
- go get 拉取指定版本_go语言学习笔记-基础知识-3
相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...
- 安装成功配置环境变量_go语言学习笔记-Windows10开发环境安装和环境变量配置
相关文档 go语言学习笔记-目录 1.安装 1.1.访问 https://golang.google.cn/dl/ 或 https://golang.org/dl/ 下载官方安装包 1.2.选择Win ...
- golang 执行sql语句_Go语言学习笔记(Golang操作MySQL数据库)
GO连接MySQL 通过GO页面作为客户端访问数据库 1.因为GO语言没有提供任何官方数据库驱动,所以需要安装第三方函数库. 2.由于在github上安装,所以需要安装git软件,安装过程一直点击下一 ...
- c语言13 6,C语言学习笔记13
局部变量与全局变量: 局部变量: 在一个函数内部定义的变量是局部变量.这些变量声明在函数内部,不能被其他函数所使用. 函数的形式参数也属于局部变量,作用范围是函数内部. 在语句范围内声明的变量仅在该语 ...
- 翁恺老师C语言学习笔记(十一)字符串
字符数组 如果我们定义了这样的一个字符数组 char word[] = {'H','e','l','l','o','!'}; word[0] H word[1] e word[2] l word[3] ...
- go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- go var type 互转_Go语言学习笔记(第九章) 结构体
Go语言基础之结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go 通过类型别名(alias types)和结构体的形式支持用户自定义 ...
- c++ 一个函数包括多个返回值判断_go语言学习笔记(10)-函数、包的使用
跳转控制语句-continue 1:continue语句用于结束本次循环,继续执行下一次循环. 2:continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面 ...
- r语言rank降序_R语言学习笔记:sort、rank、order、arrange排序函数
R语言中排序有几个基本函数:sort().rank().order().arrange() 一.总结 sort()函数是对向量进行从小到大的排序 rank()函数返回的是对向量中每个数值对应的秩 or ...
最新文章
- 面试「计算机操作系统」知识点大集合!
- 利用Excel导入数据到SAP C4C
- Ansible: hosts文件拆分为inventory和定义inventory全局变量
- Java基础学习总结(171)——CountDownLatch 使用总结
- QTcpSocket 发送和接收数据的几种方法
- 前端工程师技能之photoshop巧用系列第一篇——准备篇
- 【数字图像处理】(matlab入门1)
- 作为程序员,你一般用什么软件画流程图时序图和状态图等?
- 《Fortran95程序设计》(彭国伦)
- 层次分析法原理及应用案例
- Flexbox在button/fieldset/legend中(比如safair)失效问题
- 基于STM32的ESP8266模块控制多路继电器
- “eclipse在编译代码时运行结果始终是之前程序的结果”如何解决?
- Python:开发语言简介
- 如何统计代码总行数:指令
- 1037: 四则运算 C语言
- 按键精灵官网版 v9.63.12960 绿色版
- 五轴数控转台_五轴机床有很多种类型,你都知道吗?
- 【数据库】PLSQL Developer中文乱码问题解决
- Python实现可以语音聊天的桌面宠物程序
热门文章
- 【Statistics】均值
- 简单的通用TreeView(WPF)
- 当relative遇上z-index,半透明度不阻断事件捕获
- 蓝牙协议栈中的 OSAL
- Sharing A Powerful Tool For Calculate Code Lines
- 关于excel导出问题
- Deppin系统 Liunx显示器分辨率异常解决方法
- 【实践】汽车之家推荐系统排序算法迭代之路.pdf(附下载链接)
- Truncated Signed Distance Function: Experiments on Voxel Size
- 通俗易懂!视觉slam第三部分——slam数学表示