Golang ( 6 ) - 标准库

Golang 的标准库非常丰富,涵盖了从基础数据类型到高级并发控制的各个方面。以下是一些常用的标准库,按照使用频率从高到低介绍,并给出详细介绍。

1. fmt

  fmt.Println("Hello, World!")
  fmt.Printf("Number: %d\n", 42)

2. os

  file, err := os.Open("file.txt")
  if err != nil {
      log.Fatal(err)
  }
  defer file.Close()

3. ioio/ioutil

  data, err := ioutil.ReadFile("file.txt")
  if err != nil {
      log.Fatal(err)
  }
  fmt.Println(string(data))

4. log

  log.Println("This is a log message")
  log.Fatalf("Error: %v", err)

5. strings

  parts := strings.Split("a,b,c", ",")
  joined := strings.Join(parts, "-")
  fmt.Println(joined) // "a-b-c"

6. strconv

  num, err := strconv.Atoi("123")
  if err != nil {
      log.Fatal(err)
  }
  fmt.Println(num)

7. time

  now := time.Now()
  fmt.Println(now.Format("2006-01-02 15:04:05"))

8. math/rand

  rand.Seed(time.Now().UnixNano())
  fmt.Println(rand.Intn(100)) // 生成0-99之间的随机数

9. sync

  var mu sync.Mutex
  mu.Lock()
  // critical section
  mu.Unlock()

10. net/http

  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
      fmt.Fprintf(w, "Hello, World!")
  })
  log.Fatal(http.ListenAndServe(":8080", nil))

11. encoding/json

  type Person struct {
      Name string `json:"name"`
      Age  int    `json:"age"`
  }
  
  person := Person{Name: "Alice", Age: 30}
  data, _ := json.Marshal(person)
  fmt.Println(string(data))

12. flag

  name := flag.String("name", "World", "a name to say hello to")
  flag.Parse()
  fmt.Printf("Hello, %s!\n", *name)

13. regexp

  re := regexp.MustCompile(`\d+`)
  fmt.Println(re.FindString("abc123def")) // "123"

14. path/filepath

  path := filepath.Join("dir", "file.txt")
  fmt.Println(path)

15. bytes

  buffer := bytes.NewBufferString("Hello")
  buffer.WriteString(", World!")
  fmt.Println(buffer.String())

这些标准库涵盖了 Go 语言日常开发中的大多数需求。掌握这些库的使用,可以大大提高开发效率,并写出简洁、优雅的 Go 代码。

-- EOF --
最后更新于: 2024-09-15 11:01
发表于: 2020-06-04 19:00
标签: Golang