Go语言的常用内置函数
文章目录
- 一、Strings包
- 字符串处理包定义
- Strings包的基本用法
- Strconv包中常用函数
- 二、Time包
- 三、Math包
- math包概述
- 使用math包
- 四、随机数包(rand)
一、Strings包
字符串处理包定义
Strings包简介:
一般编程语言包含的字符串处理库功能区别不是很大,并且高级的语言提供的函数会更多,掌握基本的字符串处理函数后,更丰富的字符串处理函数都是通过封装基本的处理函数实现。因此,熟悉go strings包后基本就能借此封装,应用于特定场景的字符串处理函数。而strconv包实现了字符串与其它基本数据类型之间的类型转换。
Strings包的基本用法
Go语言常用strings网址
Go语言中的字符串、字节、符文和字符
打印字符串
string包中的字符串处理函数:
- 检索字符串
常用的字符串检索方法如图所示
- 分割字符串
分割字符串常用的方法如表所示
- 大小写转换
常用的大小写转换方法如表所示
- 修剪字符串
修剪字符串常用的方法如表所示
- 比较字符串
比较字符串常用的方法如表所示
示例:
Strconv包中常用函数
- Parse类函数:
常用的Parse类函数(将字符串转换为其他类型)如表所示
- Format类函数
常用的Format类函数(将其他类型格式化为字符串)如表所示
示例:
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
num, err := strconv.Atoi(str)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(num)
}
}
二、Time包
Go语言Time网址
Time包的定义:
- time包提供了时间的显示和测量用的函数。日历的计算采用的是公历
Time包的常用函数
time包中核心方法如表所示
示例:
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
fmt.Println(now)
fmt.Println(now.Format("2006-01-02 15:04:05")) // 格式化时间
t, _ := time.Parse("2006-01-02", "2023-10-01") // 解析时间
fmt.Println(t)
// 计算时间差
duration := now.Sub(t)
fmt.Println(duration.Hours()) // 输出小时数
}
三、Math包
math包概述
Go语言math包
使用math包
- math包提供了基本的数学常数和数学函数,使用时需要import “math”
math包中核心方法如表所示
示例:
package main
import (
"fmt"
"math"
)
func main() {
// 取绝对值
fmt.Println(math.Abs(-3.5)) // 3.5
// 幂运算
fmt.Println(math.Pow(2, 3)) // 8
// 平方根
fmt.Println(math.Sqrt(16)) // 4
}
四、随机数包(rand)
随机数包(rand/math)使用时需要import “math/rand”,rand包实现了伪随机数生成器。随机数从资源生成。包水平的函数都使用的默认的公共资源。该资源会在程序每次运行时都产生确定的序列。如果需要每次运行产生不同的序列,应使用Seed函数进行初始化。默认资源可以安全的用于多协程并发。
Go语言随机数
Rand包中核心方法如表所示
获取随机数的几种方法:
- 通过默认随机数种子获取随机数,具体方法如图所示:
- 总是生成固定的随机数。默认情况下,随机数种子都是1。seed是一个64位整数。
- 动态随机数种子生成随机资源,实例随机对象来获取随机数,具体方法如下所示。
- 简写形式:动态变化随机数种子来获取随机数,具体方法如下所示。
- (1)获取整型随机数[0,10]
- (2)获取浮点型0.0至1.0之间的随机数
- (3) 获取两数之间随机数[m , n]
示例:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 使用当前时间初始化随机种子
rand.Seed(time.Now().UnixNano())
// 生成随机整数
fmt.Println(rand.Intn(10)) // 生成0到9的随机数
// 生成0到1之间的随机浮点数
fmt.Println(rand.Float64())
// 生成指定范围的随机整数
fmt.Println(rand.Intn(7) + 5) // 生成5到11之间的随机数
}