string系统函数+时间日期+内置函数+数组+切片

字符串中常用的系统函数

  1. 统计字符串的长度,按字节 len(str)
  2. 字符串遍历,同时处理中文问题 r:=[]rune(str)
  3. 字符串转整数:n,err := strconv.Atoi(“12”)
  4. 整数转字符串:str := strconv.Itoa(12345)
  5. 字符串转 []byte: var bytes = []byte(“hello”)
  6. []byte转字符串: str = string([]byte{97,98})
  7. 10进制转为 2,8,16进制:str = strconv.FormatInt(123,2)
  8. 查询字串是否在指定字符串中: strings.Contains(“seafood”,“foo”)
  9. 统计一个字符串有几个指定字符串:strings.Count(“ceheese”,“e”)
  10. 不区分大小写的字符串比较(== 是区分带小写的字符串比较):fmt.Println(strings.EqualFold(“abc”,“Abc”))
  11. 返回子串在字符串第一次出现的index值,如果没有返回-1:strings.Index(“NLT_abc”,“abc”)
  12. 返回子串在字符串最后出现的index,如没有返回-1:strings.LastIndex(“go golang”,“gp”)
  13. 将指定的子串替换成另外一个子串:strings.Replace(“go go hello”,“go”,“golang”,n) n 可以指定你希望替换几个,如果n=1全部替换
  14. 拆成数组:strings.Split(“hello,world,”,“,”)
  15. 将字符串的字母进行大小写转换:
    strings.ToLower(“Go”)
    strings.ToUpper(“go”)
  16. 去除两边空格:strings.TrimSpace(" fdas ")
  17. 去除指定两边字符:strings.Trim(“!str!”,“!”)
  18. 去除指定左边字符:strings.TrimRight(“!str!”,“!”)
  19. 去除指定右边字符:strings.TrimLeft(“!str!”,“!”)
  20. 判断字符串是否以指定字符串开头:strings.HasPrefix(“abcde”,“a”)
  21. 判断字符串是否以指定字符结尾:strings.HasSuffix(“abcde”,“e”)

时间和日期相关函数

说明:在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行花费的时间等等

  1. 时间和日期相关函数,需要倒入time包

  2. time.Time类型,用于表示时间
    now := time.Now() // 获取当前时间

  3. 获取其他日期
    请添加图片描述

  4. 格式化日期时间
    请添加图片描述

  5. 时间的常量
    const(
    Nanosecond Duration = 1 //纳秒
    Microsecond = 1000 * Nanosecond // 微秒
    Millisecond = 1000 * Microsecond // 毫秒
    Second = 1000 * Millisecond // 秒
    Minute
    Hour
    )

  6. 休眠
    func.Sleep(d Duration)
    arg: time.Sleep(100 * time.Millisecond)

  7. 获取当前unix时间戳和unixnano时间戳

内置函数

说明:Golang设计者为了编程方便,提供了一些函数,这些函数可以直接使用,我们称为go的内置函数。

  1. len:求长度, string,array,map,channel

  2. new: 用来分配内存,主要用来分配值内存,比如int,float32,struct返回的是指针(地址)
    请添加图片描述

  3. make:用来分配内存,主要用来分配引用类型,如chan,map,slice

错误处理

基本说明:

  1. Go中引入的处理方式:defer,panic,recover
  2. 这几个异常的使用场景可简单描述为:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个异常,然后正常处理
    方法中使用
    请添加图片描述
  • 错误处理
    Go程序中,也支持自定义异常,使用errors.New 和 panic内置函数
    (1)errors.New(“错误说明”),会返回一个error类型的值,表示一个错误
    (2)panic内置函数,接收一个interface{}类型的值(任何值)作为参数,可以接受error类型的变量,输出错误信息,并退出程序 **

数组

数组可以存放多个统一类型数据。数组也是一种数据类型,在Go中,数组是值类型

请添加图片描述

  • 数组的地址可以通过数组名来获取 $intArr
  • 数组的第一个元素的地址,就是数组的首地址
  • 数组的各个元素的地址间隔是依据数据的类型决定的

细节

  1. 数组是多个相同的数据的组合,一个数组一旦声明/定义了,其长度是固定的,不能动态变化
  2. var arr []int,这时 arr 就是一个slice 切片
  3. 数组中的元素可以是任何数据类型,包括值类型和引用类型 ,但是不能混用
  4. 数组创建后,如果没有赋值,有默认值
  5. 如想 在其他函数中,去修改原来的数组,可以使用引用传递(指针方式)

创建方式

var a1 [3]int = [3]int{1,2,3}
var a2 = [3]int{1,2,3}
var a3 = [...]int{1,2,3}
var a4 = [3]string{1:"tom",0:"jack",2:"array"}

切片

切片的英文是slice
切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递机制
切片的使用和数组类似,遍历切片、访问切片的元素和求切片长度len(slice)都是一样的
切片的长度是可以变化的,因此切片是一个可以动态变化数组
切片定义的基本语法:
var 变量名 []类型
比如: var a []int

请添加图片描述

使用方式

  • 方式一:让切片去引用一个已经创建好的数组
    var arr [5]int = […]int{1,2,3,4,5}
    var slice = arr[1:3]
  • 方式二
    var slice []type = make([]type , len , [cap])
    参数说明:type是数据类型 len 数组元素 cap 容量 可选
  • 方式三
    var slice []int = []int{1,3,5}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值