> 文章列表 > Go语言常用的包(常用的函数和方法)

Go语言常用的包(常用的函数和方法)

Go语言常用的包(常用的函数和方法)

1 fmt

2 os

3 io

4 strconv

4.1 ParseBool()

package mainimport ("fmt""strconv"
)func main() {// 根据传入的bool值转成string类型数据// FormatBool(b bool) stringvar isOk bool = trueboolString := strconv.FormatBool(isOk)fmt.Printf("bool 类型的数据转成字符串类型:%v  type %T\\n", boolString, boolString)// bool 类型的数据转成字符串类型:true  type string
}

4.2 ParseFloat()

package mainimport ("fmt""strconv"
)func main() {// float类型转成字符串// FormatFloat(f float64, fmt byte, prec, bitSize int) string/*函数将浮点数表示为字符串并返回。bitSize表示f的来源类型(32:float32、64:float64),会据此进行舍入。fmt表示格式:'f'(-ddd.dddd)、'b'(-ddddp±ddd,指数为二进制)、'e'(-d.dddde±dd,十进制指数)、'E'(-d.ddddE±dd,十进制指数)、'g'(指数很大时用'e'格式,否则'f'格式)、'G'(指数很大时用'E'格式,否则'f'格式)。prec控制精度(排除指数部分):对'f'、'e'、'E',它表示小数点后的数字个数;对'g'、'G',它控制总的数字个数。如果prec 为-1,则代表使用最少数量的、但又必需的数字来表示f。*/num := 8.265646565floatString := strconv.FormatFloat(float64(num), 'f', -1, 64)fmt.Printf("数据换前:%v 算换后:%v  转换后的类型 %T\\n", num, floatString, floatString)// 数据换前:8.265646565 算换后:8.265646565  转换后的类型 string}

4.3 ParseInt()

package mainimport ("fmt""strconv"
)func main() {// 字符串转Int类型数据// ParseInt(s string, base int, bitSize int) (i int64, err error)/*返回字符串表示的整数值,接受正负号。s		目标字符串base	制定当前字符串是那种进制bitsize	保存结果的bit位数return	int64 的数据 err*/g_string := "10001001"parseInt1, _ := strconv.ParseInt(g_string, 2, 64)fmt.Printf("字符串 10001001 二进制 转成 10 进制的数据 --> %v 类型是:%T\\n", parseInt1, parseInt1)// 字符串 10001001 二进制 转成 10 进制的数据 --> 137 类型是:int64g_string2 := "-AA"parseInt2, _ := strconv.ParseInt(g_string2, 16, 64)fmt.Printf("字符串 -AA 16进制 转成 10 进制的数据 --> %v 类型是:%T\\n", parseInt2, parseInt2)// 字符串 AA 16进制 转成 10 进制的数据 --> -170 类型是:int64// 16进制数 AA 转成 10 进制数据 170
}

4.4 ParseUint()

package mainimport ("fmt""strconv"
)func main() {// 字符串转Int类型数据// ParseUint(s string, base int, bitSize int) (i uint64, err error)// 和  ParseInt 一样,只是不能接受正负号/*s		目标字符串base	制定当前字符串是那种进制bitsize	保存结果的bit位数return	int64 的数据 err*/g_string := "10001001"parseInt1, _ := strconv.ParseUint(g_string, 2, 64)fmt.Printf("字符串 10001001 二进制 转成 10 进制的数据 --> %v 类型是:%T\\n", parseInt1, parseInt1)// 字符串 10001001 二进制 转成 10 进制的数据 --> 137 类型是:int64g_string2 := "AA"parseInt2, _ := strconv.ParseUint(g_string2, 16, 64)fmt.Printf("字符串 AA 16进制 转成 10 进制的数据 --> %v 类型是:%T\\n", parseInt2, parseInt2)// 字符串 AA 16进制 转成 10 进制的数据 --> -170 类型是:int64// 16进制数 AA 转成 10 进制数据 170
}

4.5 FormatBool()

package mainimport ("fmt""strconv"
)func main() {// 根据传入的bool值转成string类型数据// FormatBool(b bool) stringvar isOk bool = trueboolString := strconv.FormatBool(isOk)fmt.Printf("bool 类型的数据转成字符串类型:%v  type %T\\n", boolString, boolString)// bool 类型的数据转成字符串类型:true  type string
}

4.6 FormatFloat()

package mainimport ("fmt""strconv"
)func main() {// float类型转成字符串// FormatFloat(f float64, fmt byte, prec, bitSize int) string/*函数将浮点数表示为字符串并返回。bitSize表示f的来源类型(32:float32、64:float64),会据此进行舍入。fmt表示格式:'f'(-ddd.dddd)、'b'(-ddddp±ddd,指数为二进制)、'e'(-d.dddde±dd,十进制指数)、'E'(-d.ddddE±dd,十进制指数)、'g'(指数很大时用'e'格式,否则'f'格式)、'G'(指数很大时用'E'格式,否则'f'格式)。prec控制精度(排除指数部分):对'f'、'e'、'E',它表示小数点后的数字个数;对'g'、'G',它控制总的数字个数。如果prec 为-1,则代表使用最少数量的、但又必需的数字来表示f。*/num := 8.265646565floatString := strconv.FormatFloat(float64(num), 'f', -1, 64)fmt.Printf("数据换前:%v 算换后:%v  转换后的类型 %T\\n", num, floatString, floatString)// 数据换前:8.265646565 算换后:8.265646565  转换后的类型 string}

4.7 FormatInt()

package mainimport ("fmt""strconv"
)func main() {// int类型的数据转成字符串类型数据// FormatInt(i int64, base int) string// 返回i的base进制的字符串表示。base 必须在2到36之间// ,结果中会使用小写字母'a'到'z'表示大于10的数字// 装成base 进制的字符串形式// 传入的数据必须先转成 int64l类型的num := -999intString := strconv.FormatInt(int64(num),2)fmt.Printf("数字 -999 转成2进制的数据:%v  类型:%T\\n",intString,intString)// 数字 -999 转成2进制的数据:-1111100111  类型:string
}

4.8 FormatUint()

package mainimport ("fmt""strconv"
)func main() {// Uint转成string// FormatUint(i uint64, base int) stringnum := 999uintString := strconv.FormatUint(uint64(num), 2)fmt.Printf("数字 -999 转成2进制的数据:%v  类型:%T\\n", uintString, uintString)// 数字 -999 转成2进制的数据:1111100111  类型:string}

5 bufio

6 bytes

7 strings

7.1 HasPrefix()

package mainimport ("fmt""strings"
)func main() {// 判断 字符串的前缀是不是指定的字符串// HasPrefix(s,prefix string) bool/*s			目标字符串prefix		判断的字符串return		bool*/g_string := "shafjdhfgjsha;2yoias"// 前缀是否是fengisPrefix := strings.HasPrefix(g_string, "feng")fmt.Println("字符串g_string的前缀是否是feng --> ", isPrefix)// 字符串g_string的前缀是否是feng -->  false}

7.2 HasSuffix()

package mainimport ("fmt""strings"
)func main() {// 判断字符串的后缀是不是指定字符串// HasSuffix(s,suffix string) bool/*s			目标字符串suffix		判断的字符串return		bool*/g_string := "gsljajks,kjdhas224"// 判断字符串后缀是不是6566isSuffix := strings.HasSuffix(g_string, "6566")fmt.Println("字符串g_string的后缀是不是6566 ——> ", isSuffix)// 字符串g_string的后缀是不是6566 ——>  false}

7.3 Contains()

package mainimport ("fmt""strings"
)func main() {// 判断字符串是否包含子串// Contains(s,Substr string) bool/*s		目标字符串Substr	字符串return	bool*/g_string := "我爱我的家乡,和我的祖国!"// 判断 字符串是否包含子串 “家乡,和我的”isContains := strings.Contains(g_string, "家乡,和我的")fmt.Println("字符串g_string 是否包含 '家乡,和我的' --> ", isContains)// 字符串g_string 是否包含 '家乡,和我的' -->  true
}

7.4 ContainsAny()

package mainimport ("fmt""strings"
)func main() {// 判断字符串是否包含子串中的任意一个字符// ContainsAny(s,Substr string) bool/*s		目标字符串Substr	子字符串return	bool*/g_string := "我爱我的家乡,和我的祖国!"// 判断 字符串是否包含子串 “家乡,和我的”isContains := strings.ContainsAny(g_string, "家佳士得")fmt.Println("字符串g_string 是否包含 '家佳士得'的任意一个字符 --> ", isContains)// 字符串g_string 是否包含 '家佳士得'的任意一个字符 -->  true
}

7.5 Count()

package mainimport ("fmt""strings"
)func main() {// 判断 字符串中含有多少个自子串--- 不重复的 111 只能算一个 11// Count(s,Seq string) int/*s		目标字符串seq		子串return	int 含有子串的数量*/g_string := "436.3131111.116793.45632.5"// 判断字符串中含有多少个子串 11hasCount := strings.Count(g_string,"11")fmt.Printf("字符串g_string含有 %v 个子串 ‘11’\\n",hasCount)// 字符串g_string含有 3 个子串 ‘11’
}

7.6 Index()

package mainimport ("fmt""strings"
)func main() {// 判断 字符串第一次出现子串的下标 没有返回 -1// Index(s,Seq string) int/*s		目标字符串seq		子串return	int 子串出现的位置*/g_string := "436.3131111.116793.45632.5"// 判断字符串第一次子串 11的位置seqIndex := strings.Index(g_string, "11")fmt.Println("字符串g_string第一次出现个子串 ‘11’的位置是 --> ", seqIndex)// 字符串g_string第一次出现个子串 ‘11’的位置是 -->  7seqIndexNot := strings.Index(g_string, "999")fmt.Println("字符串g_string第一次出现个子串 ‘999’的位置是 --> ", seqIndexNot)// 字符串g_string第一次出现个子串 ‘999’的位置是 -->  -1
}

7.7 IndexByte()

package mainimport ("fmt""strings"
)func main() {// 查询字符串中 一个字符第一次出现的位置 没有出现 -1// IndexByte(s,char ) int/*s		目标字符串seq		子串return	int 子串出现的位置*/g_string := "436.3131111.116793.45632.5"indexByte := strings.IndexByte(g_string,'9')fmt.Println("字符 9 在字符串中第一次出现的位置 -> ",indexByte)// 字符 9 在字符串中第一次出现的位置 ->  16}

7.8 LastIndex()

package mainimport ("fmt""strings"
)func main() {// 子字符串 在 目标字符串最后一次出现的位置// LastIndex(s,seq string) int/*s		目标字符串seq		子串return	int 子串出现的位置*/g_string := "436.3131111.116793.45632.5"lastIndex := strings.LastIndex(g_string, "11")fmt.Println("子字符串“11” 在 g_string 最后一次出现的位置 --> ", lastIndex)// 子字符串“11” 在 g_string 最后一次出现的位置 -->  12
}

7.9 Title()

package mainimport ("fmt""strings"
)func main() {// 字符串中每个单词的首字母大写// Title(s string) string/*s		目标字符串retuen 	string 单词大写后的字符串*/g_string := "this is Chinawwo!"title :=strings.Title(g_string)fmt.Print("单词首字母大写后g_string --> ",title)// 单词首字母大写后g_string --> This Is Chinawwo!
}

7.10 ToUpper()

package mainimport ("fmt""strings"
)func main() {// 将所有的字母都转成大写// ToUpper(s string) stringg_string := "this Is China"toUpper := strings.ToUpper(g_string)fmt.Println("字符都转成大写后的字符串 ——> ",toUpper)// 字符都转成大写后的字符串 ——>  THIS IS CHINA 
}

7.11 ToLower()

package main
import ("strings""fmt"
)
func main(){// 将所有的字母都转成小写// ToLower(s string) stringg_string := "thIS Is China"toLower := strings.ToLower(g_string)fmt.Println("字符都转成小写后的字符串 ——> ",toLower)// 字符都转成小写后的字符串 ——>  this is china
}

7.12 Repeat()

package mainimport ("fmt""strings"
)func main() {// 重复字符串制定次数// Repeat(s string, count int) stringg_string := "you ! "repeatString := strings.Repeat(g_string, 5)fmt.Println("字符串 g_string 重复 5次的结果是 --> ", repeatString)// 字符串 g_string 重复 5次的结果是 -->  you ! you ! you ! you ! you ! 
}

7.13 Replace()

package mainimport ("fmt""strings"
)func main() {// 字符串的替换// Replace(s, old, new string, n int) string/*s		目标字符串old		被替换的字符串new		替换成的字符串n		替换次数  n<0 全部替换*/g_string := "This is a pig is cd is cc!"replaceOne := strings.Replace(g_string, "is", "OO", 1)fmt.Println("字符串被替换一次后的结果 --> ", replaceOne)// 字符串被替换一次后的结果 -->  ThOO is a pig is cd is cc!replaceAll := strings.Replace(g_string, "is", "OO", -1)// 也可以使用 ReplaceAll()fmt.Println("字符串被全部替换后的结果 --> ", replaceAll)// 字符串被全部替换后的结果 -->  ThOO OO a pig OO cd OO cc!
}

7.14 Trim()

package mainimport ("fmt""strings"
)func main() {// 去除 前后的制定的字符串// Trim(s string,cute string) stringg_string := "11111this is empty      1 1111"trim := strings.Trim(g_string, "1")fmt.Println("去除前后制定的字符串后 --> ", trim)// 去除前后制定的字符串后 -->  this is empty      1// 去除字符串前后的空格// TrimSpace(s string) stringg2_string := "    do you knon    11    "trimSpace := strings.TrimSpace(g2_string)fmt.Println("去除前后空格后的的数据 --> ", trimSpace)// 去除前后空格后的的数据 -->  do you knon    11// 去除左边的字符串// TrimLeft(s string, cutset string) stringgl_string := "CCCCCCdo you knon    11CCC"trimLeft := strings.TrimLeft(gl_string, "C")fmt.Println("gl_string去除左边的字符串后 --> ", trimLeft)// gl_string去除左边的字符串后 -->  do you knon    11CCC// 去除右边的字符串// TrimLeft(s string, cutset string) stringgr_string := "CCCCCCdo you knon    11CCC"trimRight := strings.TrimRight(gr_string, "C")fmt.Println("gl_string去除右边的字符串后 --> ", trimRight)// gl_string去除右边的字符串后 -->  CCCCCCdo you knon    11
}

7.15 Fields()

package mainimport ("strings""fmt"
)func main() {// 返回字符串按照空白进行切割的后的切片// Fields(s string) []string/*s		目标字符串return	[]string 字符串的切片*/g_string := "   GGG cc HH LL AQEWQ "fields := strings.Fields(g_string)fmt.Println("字符串按照1-n 个空格进行分割得到的切片是 --> ",fields)// 字符串按照1-n 个空格进行分割得到的切片是 -->  [GGG cc HH LL AQEWQ]
}

7.16 Split()

package mainimport ("fmt""strings"
)func main() {// 关于字符串切割操作// Split(s,seq strings) []string    --- 会切割所有符合结果的/*s		目标字符串seq		用于切割的字符串return	[]string 字符串切片*/gs_string := "hgjhg222kjgjh222hj222jkk2jh2jjj2"split := strings.Split(gs_string, "2")fmt.Println("gs_string 字符串按照 “2”切割后的数据 --> ", split)// [hgjhg   kjgjh   hj   jkk jh jjj ]  -- 含有空格 空格也是一部分// SplitN(s,seq string,n int) []string/*s		目标字符串seq		切割的子串n		返回切片元素个数 n = 0 返回nil   n <0 尽可能的多切割return	[]string 字符串的切片*/splitn := strings.SplitN(gs_string, "22", 3)fmt.Println("字符串切割 2次后的数据 -->", splitn)// 字符串切割 3次后的数据 --> [hgjhg 2kjgjh 2hj222jkk2jh2jjj2]//}

7.17 Join()

package mainimport ("fmt""strings"
)func main() {// 字符串拼接 将写字符串 按照某个方式拼接// Join(a []string, sep string) string/*a		要拼接字符串的 切片seq		拼接的字符串return	string  返回一个字符串*/var name = []string{"111", "222", "333", "444", "555", "666"}joinString := strings.Join(name,"===")fmt.Println("切片拼接后的字符串 -> ",joinString)//  切片拼接后的字符串 ->  111===222===333===444===555===666
}

8 time

9 math/rand

10 math

11 sort

12 sync

13 net

14 net/http

15 encoding/json

16 log

17 flag

18 image

19 path

20 reflect

21 regexp