Go语言的常用内置包

1. strings包

1.1 检索字符串

方法功能描述
func Contains(s, subStr string) bool字符串s是否包含子串subStr
func ContainsAny(s, chars string) bool字符串s是否包含chars中任一字符
func ContainsRune(s string, r rune)字符串s是否包含unicode码值r
func Count(s, sep string) int字符串s包含sep的个数
func HasPrefix(s, prefix string) bool字符串s是否有前缀字符串prefix
func HasSuffix(s, suffix string) bool字符串s是否有后缀字符串prefix
func Index(s, sep string) int字符串sep在s中首次出现的位置
func IndexAny(s, chars string) int字符串chars中任一unicode码值在s中首次出现的位置
func IndexByte(s string, c char) int字符c在s中首次出现的位置
func IndexFunc(s string, f func()bool) int字符串s中首次满足 f(r) ==true的位置
func IndexRune(s string, r rune) int字符串s中unicode码值r首次出现的位置
func LastIndex(s, sep string) int字符串sep在s中最后一次出现的位置
func LastIndexAny(s, chars string) int字符串chars中任一unicode码值在s中最后一次出现的位置
func LastIndexByte(s string, c char) int字符c在s中最后一次出现的位置
func LastIndexFunc(s string, f func()bool) int字符串s中最后一次满足 f(r) ==true的位置

1.2 分割字符串

方法功能
func Fields(s string) []string将字符串s以空格字符分割成一个切片
func FieldsFunc(s string, f func(rune)bool) []string将字符串s以f(r) ==true字符分割成一个切片
func Split(s, sep string) []string将字符串s以sep为分隔符分割,分割后的字符去掉sep
func SplitAfter(s, sep string) []string将字符串s以sep为分隔符分割,分割后的字符附上sep
func SplitN(s, sep string, n int) []string将字符串s以sep为分隔符分割,分割后的字符去掉sep,n决定返回的切片数
func SplitAfter(s, sep string, n int) []string将字符串s以sep为分隔符分割,分割后的字符附上sep,n决定返回的切片数

1.3 大小写转换

方法功能
func Title(s string) string将字符串s中的每个单词的首字母大写返回
func ToLower(s string) string将字符串s转换成小写返回
func ToTitle(s string) string将字符串s转换成大写返回
func ToUpper(s string) string将字符串s转换成大写返回
func ToLowerSpecial(_case unicode.SpecialCase, s string) string将字符串s中的所有字符按_case指定的映射转换成小写返回
func ToTitleSpecial(_case unicode.SpecialCase, s string) string将字符串s中的所有字符按_case指定的映射转换成大写返回
func ToUpperSpecial(_case unicode.SpecialCase, s string) string将字符串s中的所有字符按_case指定的映射转换成大写返回

1.4 修剪字符串

方法功能
funcTrim(s string, cutset string) string将字符串s首尾包含在cutset中的任一字符去掉返回
funcTrimFunc(s string, f func(rune)bool) string将字符串s首尾满足 f(r)==true 的字符去掉返回
funcTrimLeft(s string, cutset string) string将字符串s左边包含在cutset中的任一字符去掉返回
funcTrimLeftFunc(s string, f func(rune)bool) string将字符串s左边满足 f(r)==true 的字符去掉返回
func TrimPrefix(s, prefix string) string将字符串s中前缀字符串prefix去掉返回
func
funcTrimRight(s string, cutset string) string将字符串s右边包含在cutset中的任一字符去掉返回
funcTrimRightFunc(s string, f func(rune)bool) string将字符串s右边满足 f(r)==true 的字符去掉返回
func TrimSpace(s string) string将字符串s首尾空白去掉返回
func TrimSuffix(s, suffix string) string将字符串s后后缀字符串suffix去掉返回

1.5 比较字符串

方法功能
func Compare(a, b string) int按字典顺序比较a b字符串大小
func EqualFold(s, t string) bool判断s和t两个UTF-8字符串是否相等,忽略大小写
func Repeat(s string, count int) string将字符串s重复count次返回
func Replace(s, old, new string, n int) string替换字符串s中old字符为new并返回,n<0时,替换所有old字符串
func Join(a []string, sep string) string将a中所有字符连接成一个字符串,使用字符串sep作为分隔符

2. strconv包

2.1  Parse类函数

        Parse类函数主要的功能是将字符串转换为其他类型。

方法功能
func Atoi(s string) (int, error)将字符串s转换为整数
func ParseInt(s string, base int, bitSize int) (int64, error)将字符串解析成数字,base表示进制(2到36)。如果base为0,则从前缀判断:0x-16,0-8,否则就是十进制。bitSize指定结果,必须是能无溢出赋值的整数类型:0-int, 8-int8, 16-int16, 32-int32, 64-int64
func ParseUint(s string, base int, bitSize int) (uint64, error)类似于 ParseInt
func ParseFloat(s string, bitSize int) (float64, error)解析一个表示浮点数的字符串并返回其值
func ParseBool(s string) (bool, error)返回字符串表示的布尔值,它接受 1 t T TRUE True true 0 f F FALSE False false。任何其他值都返回错误。

2.2 Format类函数

        Format类函数主要的功能是将其他类型格式化成字符串

方法功能
func Itoa(i int) stringItoa是FormatInt(int64(i), 10)的缩写,int转换成string
func FormatInt(i int64, base int) string返回给定基数的i的字符串表示,base(2到36)
func FormatUint(i uint64, base int) string类似于FormatInt
func FormatFloat(f float64, fmt byte, prec, bitSize int) string将浮点数表示为字符串返回。bitSize表示f的来源类型(32:float32,64:float64),fmt表示格式(f b e E g G),prec控制精度:对 f e E表示小数点后数字个数,对g G表示数字总数。prec = -1时表示最少数量但又必须的数字来表示
func FormatBool(b bool) string根据bool值返回 true 或 false

3. time包

        time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。

方法功能
func Now() Time返回当前本地时间
func (t Time)Local() Time将时间转换为本地时区
func (t Time)UTC() Time将时间转换为0时区
func Date(year int, month Month, day, hour, min, sec, nsec int, loc Location) Time根据指定值返回一个时间,loc用于指定时区:time.Local   time.UTC
func Parse(layout, value string) (Time, error)将string类型转换为Time类型,layout表示参考时间格式,如果没有时区信息,则按UTC设置
func (t Time)Format(layout string) string将Time格式转换为string类型
func (t Time)String() string相当于固定格式的Format
func (t Time)Unix() int64将 t 表示为Unix时间,即从1.1.1970UTC到时间点 t 所经历的时间(单位秒)
func (t Time)UnixNano() int64将 t 表示为Unix时间,即从1.1.1970UTC到时间点 t 所经历的时间(单位纳秒)
func (t Time)Equal(u time) bool此方法会考虑时区的影响,不同于 t == u 的比较
func (t Time)Before(u time) bool如果 t 在 u 之前,则返回true
func (t Time)After(u time) bool如果 t 在 u 之后,则返回true
func (t Time)Date() (year int, month Month, day int)返回 t 对应的年、月、日
func (t Time) Year() int返回 t 对应的年份
func (t Time) Month() Month返回 t 对应的月份
func (t Time) Day() int返回 t 对应的月份的第几天
func (t Time) Weekday() Weekday返回 t 对应的那天的周几
func (t Time) Clock() (hour, min, sec int)返回 t 对应的那天的时、分、秒
func (t Time) Hour() int返回 t 对应的那天的几点
func (t Time) Minute() int返回 t 对应的那天的几分
func (t Time) Second() int返回 t 对应的那天的几秒
func (t Time) Nanosecond() int返回 t 对应的那天的几纳秒
func (t Time)Sub(u time) Duration返回一个时间段t-u。如果超过了Duration的极值表示范围,则返回极值。
func (d Duration)Hours() float64将时间段表示为float64类型的小时数
func (d Duration)Minutes() float64将时间段表示为float64类型的分钟数
func (d Duration)Seconds() float64将时间段表示为float64类型的秒数
func (d Duration)Nanoseconds() int64将时间段表示为float64类型的纳秒数,等价于 int64(d)
func (d Duration)String() string返回时间段的字符串表示,如: “7h53m0.5s”,前面可以有符号。
func ParseDuration(s string)(Duration, error)解析一个时间段字符串
func (t Time)Add(d Duration) Time返回一个时间点 t+d
func (t Time)AddDate(year, month, day int) Time返回一个时间点

4. math包

        math包提供了基本的数学常数和数学函数。

方法功能
func IsNaN(f float64) boolf 是否表示一个NaN(Not a Number)值
func Ceil(x float64) float64返回不小于 x 的最小整数(的浮点值)
func Floor(x float64) float64返回不大于 x 的最小整数(的浮点值)
func Trunc(x float64) float64返回 x 的整数部分(的浮点值)
func Abs(x float64) float64返回 x 的绝对值
func Min(x, y float64) float64返回 x y 中的较小值
func Max(x, y float64) float64返回 x y 中的较大值
func Dim(x, y float64) float64返回 x-y 和 0 中的较大值
func Mod(x, y float64) float64取余运算
func Sqrt(x float64) float64返回 x 的二次方根
func Cbrt(x float64) float64返回 x 的三次方根
func Hypot(p, q float64) float64返回 Sqrt(p*p + q*q)
func Pow(x, y float64) float64返回 x 的 y 次幂
func Sin(x float64) float64求正弦
func Cos(x float64) float64求余弦
func Tanc(x float64) float64求正切
func Log(x float64) float64求自然对数
func Log2(x float64) float64求2为底的对数
func Log10(x float64) float64求10为底的对数

5. 随机数

        "math/rand" 包实现了伪随机数生成器,能够生成整型和浮点型的随机数。使用随机数生成器需要放入种子。可以使用 Seed() 函数生成一个不确定的种子放入随机数生成器,这样每次运行随机数生成器都会生成不同的序列。如果没有在随机数生成器中放入种子,则默认使用具有确定性状态的种子,此时可以理解为种子的值是一个常数1,即Seed(1)。

方法功能
func NewSoource(sees int64) Source使用给定的种子创建一个伪随机资源
func New(src Source) *Rand

返回一个使用src产生的随机数来生成其他各种分布的随机数值的 *Rand

func (r *Rand)Seed(seed int64)使用给定的seed来初始化生成器到一个确定的状态
func (r *Rand)Int() int返回一个非负的伪随机 int 值
func (r *Rand)Intn(n int) int返回一个取值范围在 [0,n]之间的伪随机 int 值,如果n <= 0会panic
func (r *Rand)Float64() float64返回一个范围在 [0.0, 1.0]之间的伪随机 float64 值

动态随机数种子生成随机资源,产生随机对象来获取随机数:

se := rand.NewSource(time.Now().UnixNano())
r := rand.New(se)
a := r.Intn(100)

rand.Seed(time.Now().UnixNano())
b := rand.Float64()

6. regexp包

1.检查正则表达式与字节数组是否匹配。更复杂的查询建议使用Compile()和完整的Regexp接口。

        func Match(pattern string, b []byte) (matched bool, err error)

2.检查正则表达式与字符串是否匹配。

        func MatchString(pattern string, s string) (matched bool, err error)

3.将正则表达式字符串编译成正则表达式对象(Regexp)

        func Compile(exp string) (*Regexp, error)

4.MustCompile()用法同Compile(),但是不返回error。如果表达式不能被解析就会panic。

        func MustCompile(exp string) *Regexp

5.判断Regexp正则对象是否与给定的字节数组匹配。

        func (re *Regexp)Match(b []byte) bool

6.判断Regexp正则对象是否与给定的字符串匹配。

        func (re *Regexp)MatchString(s string) bool

7.ReplaceAll()将src中符合正则表达式的部分全部替换成指定内容。

        func (re *Regexp)ReplaceAll(src, repl []byte) []byte

8.将字符串按照正则表达式分割成子字符串组成的切片。如果切片长度超过指定参数n,则不再分割。

        func (re *Regexp)Split(s string, n int) []string

7. json包

        Go的标准包encoding/json支持json。

        json包是通过反射机制来实现编解码的,因此结构体必须导出所转换的字段,没有导出的字段不会被json包解析。

7.1 编码

        Marshal()        //无空白和缩进,不便于阅读

        MarshalIndent()        //可设置空白和缩进,便于阅读

注意:

        1.JSON对象只支持string作为key,所以要编码一个map,必须是map[string]T这种类型(T是Go语言中的任意类型)。

        2.channel、complex 和 function 是不能被编码成JSON的。

        3.指针在编码的时候会输出指针指向的内容,而空指针会输出null。

7.2 解码

        解析时不区分大小写。

        func Unmarshal(data []byte, v interface{}) error

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值