zoukankan      html  css  js  c++  java
  • golang学习笔记 ---常用第三方包

    包的介绍

    包类似Java中概念,jar
    是源代码管理,分发的最小单位。

    目前多数包来自 Github
    官方包来自 golang.org/x/...

    可以在如下网址查询到高频使用的第三方包清单
    https://godoc.org

    常用清单

    1. github.com/astaxie/beego 成熟稳定的Web框架,包含更过的Web Framework特性 国内开发者 astaxie
    2. github.com/go-redis/redis 连接Redis
    3. github.com/gomodule/redigo/redis 连接Redis
    4. github.com/jinzhu/gorm 数据库ORM框架,类似Java领域的HibernateMyBatis 国内开发者
    5. github.com/sirupsen/logrus 日志框架,类似Java领域的log4j
    6. github.com/robfig/cron 定时任务,类似Java领域的Quartz
    7. github.com/gin-gonic/gin 精巧高效的Web框架,多用于提供Web服务

    Go 标准库可以大致按其中库的功能进行以下粗略的分类

    • 输入输出。这个分类包括二进制以及文本格式在屏幕、键盘、文件以及其他设备上的输
      入输出等,比如二进制文件的读写。对应于此分类的包有bufio、 fmt、 io、 log和flag
      等,其中 flag 用于处理命令行参数。
    • 文本处理。这个分类包括字符串和文本内容的处理,比如字符编码转换等。对应于此分
      类的包有encoding、 bytes、 strings、 strconv、 text、 mime、 unicode、 regexp、
      index和path等。其中path用于处理路径字符串。
    • 网络。这个分类包括开发网络程序所需要的包,比如Socket编程和网站开发等。对应于此
      分类的包有: net、 http和expvar等。
    • 系统。这个分类包含对系统功能的封装,比如对操作系统的交互以及原子性操作等。对
      应于此分类的包有os、 syscall、 sync、 time和unsafe等。
    • 数据结构与算法。对应于此分类的包有math、 sort、 container、 crypto、 hash、
      archive、 compress和image等。因为image包里提供的图像编解码都是算法,所以也
      归入此类。
    • 运行时。对应于此分类的包有: runtime、 reflect和go等。

    常用包介绍

    • fmt:它实现了格式化的输入输出操作,其中的fmt.Printf()和fmt.Println()是开发者使用最为频繁的函数。
    • io:它实现了一系列非平台相关的IO相关接口和实现,比如提供了对os中系统相关的IO功能的封装。我们在进行流式读写(比如读写文件)时,通常会用到该包。
    • bufio:它在io的基础上提供了缓存功能。在具备了缓存功能后, bufio可以比较方便地提供ReadLine之类的操作。
    • strconv:本包提供字符串与基本数据类型互转的能力。
    • os:本包提供了对操作系统功能的非平台相关访问接口。接口为Unix风格。提供的功能包括文件操作、进程管理、信号和用户账号等。
    • sync:它提供了基本的同步原语。在多个goroutine访问共享资源的时候,需要使用sync中提供的锁机制。
    • flag:它提供命令行参数的规则定义和传入参数解析的功能。绝大部分的命令行程序都需要用到这个包。
    • encoding/json: JSON目前广泛用做网络程序中的通信格式。本包提供了对JSON的基本支持,比如从一个对象序列化为JSON字符串,或者从JSON字符串反序列化出一个具体的对象等。
    • http:它是一个强大而易用的包,也是Golang语言是一门“互联网语言”的最好佐证。通过http包,只需要数行代码,即可实现一个爬虫或者一个Web服务器,这在传统语言中是无法想象的。

    完整包列表

     

  • 相关阅读:
    第51天 [js] 字符串相连有哪些方式?哪种最好?为什么?
    第52天 [js] 什么是事件委托?它有什么好处?能简单的写一个例子吗?
    np.ndarray与Eigen::Matrix之间的互相转换
    C++向assert加入错误信息
    CeiT:训练更快的多层特征抽取ViT
    CoAtNet: 90.88% Paperwithcode榜单第一,层层深入考虑模型设计
    正式启用Danube 官方站点
    go 编译报错 package embed is not in GOROOT (/usr/local/go/src/embed)
    cloudreve兼容acme.sh脚本
    Git的交叉编译
  • 原文地址:https://www.cnblogs.com/saryli/p/11385325.html
Copyright © 2011-2022 走看看