flag包

  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. )
  6. func style1() {
  7. var user=flag.String("user","","user字段需要接收一个username")
  8. //Parse()解析命令行参数
  9. flag.Parse()
  10. fmt.Println(*user)
  11. }
  12. func style2() {
  13. var user string
  14. flag.StringVar(&user,"user","","user字段接收一个username")
  15. flag.Parse()
  16. fmt.Println(user)
  17. }
  18. func main() {
  19. //fmt.Println("hello,world")
  20. //fmt.Println(os.Args) //返回[]string [main.exe test]
  21. //style1()
  22. //style2()
  23. }

https://studygolang.com/pkgdoc

strings包

func Contains(s, substr string) bool

判断字符串s是否包含字符或者子串substr

  1. s:="hello,world"
  2. //字符串包含
  3. fmt.Println(strings.Contains(s,"he"))//true

func Index(s, sep string) int

判断子串sep在字符串s中出现的位置,不存在则返回-1。

  1. s:="hello,world"
  2. //字符串出现位置(索引)
  3. fmt.Println(strings.Index(s,"world"))//6

func HasPrefix(s, prefix string) bool

func HasSuffix(s, suffix string) bool

判断字符串s是否以字符串prefix为前缀。
判断字符串s是否以字符串suffix为后缀。

  1. s:="hello,world"
  2. //前缀和后缀
  3. fmt.Println(strings.HasPrefix(s,"he"))//true
  4. fmt.Println(strings.HasPrefix(s,"ld"))//true

func Replace(s, old, new string, n int) string

在字符串s中,把old字符串替换为new字符串,n表示替换的次数,n<0表示全部替换。

  1. s:="hello,world"
  2. //替换
  3. fmt.Println(strings.Replace(s,"l","b",1))//heblo,world

func Split(s, sep string) []string

strings.Split(s, sep) 用于自定义分割符号来对指定字符串进行分割,同样返回 slice

  1. s:="hello,world"
  2. //分割
  3. fmt.Println(strings.Split(s,"l"))//[he o,wor d]

json包

  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "net/http"
  6. )
  7. type Server struct {
  8. Servername string `json:"servername"`
  9. Serverip string `json:"serverip"`
  10. Serverport int `json:"serverport"`
  11. }
  12. //json序列化结构
  13. func SerializeStruct() {
  14. sever := new(Server)
  15. sever.Serverip = "127.0.0.1"
  16. sever.Servername = "struct"
  17. sever.Serverport = 8080
  18. bypes, err := json.Marshal(sever) //序列化成json 字节数组
  19. if err != nil {
  20. fmt.Println(err.Error())
  21. return
  22. }
  23. fmt.Println("marshal json:", string(bypes)) //将json字节数组转换成string
  24. }
  25. //json序列化map
  26. func SerializeMap() {
  27. sever := make(map[string]interface{})
  28. sever["Serverip"] = "192.168.0.1"
  29. sever["Servername"] = "map"
  30. sever["Serverport"] = 9090
  31. bypes, err := json.Marshal(sever) //序列化成json 字节数组
  32. if err != nil {
  33. fmt.Println(err.Error())
  34. return
  35. }
  36. fmt.Println("marshal json:", string(bypes)) //将json字节数组转换成string
  37. }
  38. //反序列化struct
  39. func UnSerializeStruct() {
  40. jsonString :="{\"servername\":\"struct\",\"serverip\":\"127.0.0.1\",\"serverport\":8080}"
  41. sever := new(Server)
  42. err:=json.Unmarshal([]byte(jsonString),sever)
  43. if err!=nil{
  44. fmt.Println(err.Error())
  45. }
  46. fmt.Println("Unmarshal struct",sever)
  47. }
  48. //反序列化map
  49. func UnSerializeMap() {
  50. jsonString :="{\"servername\":\"map\",\"serverip\":\"192.168.0.1\",\"serverport\":9090}"
  51. sever := make(map[string]interface{})
  52. err:=json.Unmarshal([]byte(jsonString),&sever)
  53. if err!=nil{
  54. fmt.Println(err.Error())
  55. return
  56. }
  57. fmt.Println("Unmarshal map",sever)
  58. }
  59. func main() {
  60. //json包学习
  61. SerializeStruct()
  62. SerializeMap()
  63. UnSerializeStruct()
  64. UnSerializeMap()
  65. }

strconv包

  1. func main() {
  2. //strconv包学习
  3. str:=strconv.Itoa(75) //75(string)
  4. ints,_:=strconv.Atoi(str) //75(int)
  5. fmt.Println(ints)
  6. //解析
  7. fmt.Println(strconv.ParseBool("false"))//false
  8. fmt.Println(strconv.ParseFloat("3.14",64))//3.14
  9. //格式化
  10. fmt.Println(strconv.FormatBool(true))//true(string)
  11. fmt.Println(strconv.FormatInt(10,16))//a base表示转换进制16
  12. }