1、fmt:格式化输入输出库
package main
import "fmt"
func main(){fmt.Println("Hello, World!")
}
2、net/http: HTTP 客户端和服务器库
package main
import ("fmt""net/http"
)func main() {http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "Hello, 世界!")})http.ListenAndServe(":8080", nil)
}
3、os:操作系统相关库,如文件操作、环境变量
package mainimport ("fmt""os"
)func main() {file, err := os.Create("test.txt")if err != nil {fmt.Println("创建文件失败:", err)return}defer file.Close()file.WriteString("Hello, 世界!")
}
4、strconv:字符串与基本数据类型之间的转换库
package mainimport ("fmt""strconv"
)func main() {num := 42str := strconv.Itoa(num)fmt.Println("字符串形式的数字:", str)str = "42"num, err := strconv.Atoi(str)if err != nil {fmt.Println("转换失败:", err)return}fmt.Println("整数形式的数字:", num)
}
5、sync:并发编程同步原语库,如互斥锁、WaitGroup等
package mainimport ("fmt""sync"
)func main() {var wg sync.WaitGroupwg.Add(2)go func() {fmt.Println("任务1完成")wg.Done()}()go func() {fmt.Println("任务2完成")wg.Done()}()wg.Wait()fmt.Println("所有任务完成")
}
6、io/ioutil:输入输出食用工具库,用于简化文件读写操作
package mainimport ("fmt""io/ioutil"
)func main() {content, err := ioutil.ReadFile("test.txt")if err != nil {fmt.Println("读取文件失败:", err)return}fmt.Println("文件内容:", string(content))
}
7、encoding/json:JSON 编码和解码库
package mainimport ("encoding/json""fmt"
)type Person struct {Name string `json:"name"`Age int `json:"age"`
}func main() {jsonStr := `{"name": "张三", "age": 30}`var p Personerr := json.Unmarshal([]byte(jsonStr), &p)if err != nil {fmt.Println("解码失败:", err)return}fmt.Printf("解码后的结构体: %+v\n", p)data, err := json.Marshal(p)if err != nil {fmt.Println("编码失败:", err)return}fmt.Println("编码后的 JSON 字符串:", string(data))
}
8、time:时间处理库
package mainimport ("fmt""time"
)func main() {now := time.Now()fmt.Println("当前时间:", now)format := "2006-01-02 15:04:05"str := now.Format(format)fmt.Println("格式化后的时间:", str)str = "2023-04-25 12:00:00"t, err := time.Parse(format, str)if err != nil {fmt.Println("解析时间失败:", err)return}fmt.Println("解析后的时间:", t)
}
9、regexp:正则表达式库
package mainimport ("fmt""regexp"
)func main() {pattern := `^\d{3}-\d{2}-\d{4}$`re := regexp.MustCompile(pattern)input := "123-45-6789"isMatch := re.MatchString(input)fmt.Printf("输入字符串 %s 是否匹配模式 %s: %v\n", input, pattern, isMatch)
}
10、log:日志处理库
package mainimport ("log""os"
)func main() {file, err := os.OpenFile("log.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)if err != nil {log.Fatal("打开日志文件失败:", err)}defer file.Close()log.SetOutput(file)log.Println("这是一条日志记录")
}
11、bufio:缓冲输入输出库,用于提高读写效率
package mainimport ("bufio""fmt""os"
)func main() {file, err := os.Open("test.txt")if err != nil {fmt.Println("打开文件失败:", err)return}defer file.Close()scanner := bufio.NewScanner(file)for scanner.Scan() {fmt.Println(scanner.Text())}if err := scanner.Err(); err != nil {fmt.Println("读取文件失败:", err)}
}
12、path/filepath:文件路径操作库
package mainimport ("fmt""path/filepath"
)func main() {path := "/usr/local/go/src/fmt"fmt.Println("文件路径:", path)dir := filepath.Dir(path)fmt.Println("目录:", dir)base := filepath.Base(path)fmt.Println("文件名:", base)ext := filepath.Ext(path)fmt.Println("扩展名:", ext)
}
13、sort:排序库,用于对切片和自定义数据结构进行排序
package mainimport ("fmt""sort"
)func main() {nums := []int{5, 3, 8, 1, 9}sort.Ints(nums)fmt.Println("排序后的整数切片:", nums)strs := []string{"apple", "banana", "cherry", "orange"}sort.Strings(strs)fmt.Println("排序后的字符串切片:", strs)
}
14、container/list:双向链表库
package mainimport ("container/list""fmt"
)func main() {l := list.New()l.PushBack(1)l.PushBack(2)l.PushBack(3)for e := l.Front(); e != nil; e = e.Next() {fmt.Println(e.Value)}
}
15、math/rand:伪随机数生成库
package mainimport ("fmt""math/rand""time"
)func main() {rand.Seed(time.Now().UnixNano())randomInt := rand.Intn(100)fmt.Println("生成的随机整数:", randomInt)randomFloat := rand.Float64()fmt.Println("生成的随机浮点数:", randomFloat)
}