教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 数据结构和算法(Golang实现)(7)简单入门Golang-标准库

数据结构和算法(Golang实现)(7)简单入门Golang-标准库

发布时间:2022-12-12   编辑:jiaochengji.com
教程集为您提供数据结构和算法(Golang实现)(7)简单入门Golang-标准库等资源,欢迎您收藏本站,我们将为您提供最新的数据结构和算法(Golang实现)(7)简单入门Golang-标准库资源

使用标准库

一、避免重复造轮子

官方提供了很多库给我们用,是封装好的轮子,比如包fmt,我们多次使用它来打印数据。

我们可以查看到其里面的实现:

package fmt

func Println(a ...interface{}) (n int, err error) {
    return Fprintln(os.Stdout, a...)
}

func Printf(format string, a ...interface{}) (n int, err error) {
    return Fprintf(os.Stdout, format, a...)
}

func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {
    p := newPrinter()
    p.doPrintf(format, a)
    n, err = w.Write(p.buf)
    p.free()
    return
}

func Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
    p := newPrinter()
    p.doPrintln(a)
    n, err = w.Write(p.buf)
    p.free()
    return
}

函数Println是直接打印并换行,Printf的作用是格式化输出,如:

    // 打印一行空行
    fmt.Println()

    // 打印 4 5 6
    fmt.Println(4, 5, 6)

    // 占位符 %d 打印数字,\n换行
    fmt.Printf("%d\n", 2)

    // 占位符 %s 打印字符串,\n换行
    fmt.Printf("%s\n", "cat")

    // 占位符 %v或者%#v 打印任何类型,\n换行
    fmt.Printf("%#v,%v\n", "cat", 33)

    // 更多示例
    fmt.Printf("%s,%d,%s,%v,%#v\n", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})

输出:

4 5 6
2
cat
"cat",33
cat,2,3,map[int]string{1:"s"}

函数Printf使用到了另外一个函数Fprintf,而函数Fprintf内部又调用了其他的结构体方法。

对于我们经常使用的func Printf(format string, a ...interface{}),我们传入format和许多变量a ...interface{},就可以在控制台打印出我们想要的结果。如:

fmt.Printf("%s,%d,%s,%v,%#v\n", "cat", 2, "3", map[int]string{1: "s"}, map[int]string{1: "s"})

其中%是占位符,表示后面的变量逐个占位。占位符后面的小写字母表示占位的类型,%s表示字符串的占位,%d表示数字类型的占位,%v%#v表示未知类型的占位,会自动判断类型后打印,加#会打印得更详细一点。因为该打印不会换行,我们需要使用\n换行符来换行。

在某些时候,我们可以使用官方库或别人写的库,毕竟轮子重造需要时间。

同时,如果想开发速度提高,建议安装IDE,也就是Integrated Development Environment(集成开发环境),如Goland(原生支持Golang) 或IDEA软件(需安装插件)。

二、总结

我们只学习了Golang语言的一个子集,想更详细的学习,可以安装docker后,打开终端:

# 拉镜像
docker pull hunterhug/gotourzh

# 后台运行
docker run -d -p 9999:9999 hunterhug/gotourzh

打开浏览器输入:127.0.0.1:9999更全面地学习。

后面的算法分析和实现,会使用Golang来举例。

系列文章入口

我是陈星星,欢迎阅读我亲自写的 数据结构和算法(Golang实现),文章首发于 阅读更友好的GitBook。

  • 数据结构和算法(Golang实现)(1)简单入门Golang-前言
  • 数据结构和算法(Golang实现)(2)简单入门Golang-包、变量和函数
  • 数据结构和算法(Golang实现)(3)简单入门Golang-流程控制语句
  • 数据结构和算法(Golang实现)(4)简单入门Golang-结构体和方法
  • 数据结构和算法(Golang实现)(5)简单入门Golang-接口
  • 数据结构和算法(Golang实现)(6)简单入门Golang-并发、协程和信道
  • 数据结构和算法(Golang实现)(7)简单入门Golang-标准库
  • 数据结构和算法(Golang实现)(8.1)基础知识-前言
  • 数据结构和算法(Golang实现)(8.2)基础知识-分治法和递归
  • 数据结构和算法(Golang实现)(9)基础知识-算法复杂度及渐进符号
  • 数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法
  • 数据结构和算法(Golang实现)(11)常见数据结构-前言
  • 数据结构和算法(Golang实现)(12)常见数据结构-链表
  • 数据结构和算法(Golang实现)(13)常见数据结构-可变长数组
  • 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列
  • 数据结构和算法(Golang实现)(15)常见数据结构-列表
  • 数据结构和算法(Golang实现)(16)常见数据结构-字典
  • 数据结构和算法(Golang实现)(17)常见数据结构-树
  • 数据结构和算法(Golang实现)(18)排序算法-前言
  • 数据结构和算法(Golang实现)(19)排序算法-冒泡排序
  • 数据结构和算法(Golang实现)(20)排序算法-选择排序
  • 数据结构和算法(Golang实现)(21)排序算法-插入排序
  • 数据结构和算法(Golang实现)(22)排序算法-希尔排序
  • 数据结构和算法(Golang实现)(23)排序算法-归并排序
  • 数据结构和算法(Golang实现)(24)排序算法-优先队列及堆排序
  • 数据结构和算法(Golang实现)(25)排序算法-快速排序
  • 数据结构和算法(Golang实现)(26)查找算法-哈希表
  • 数据结构和算法(Golang实现)(27)查找算法-二叉查找树
  • 数据结构和算法(Golang实现)(28)查找算法-AVL树
  • 数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树
  • 数据结构和算法(Golang实现)(30)查找算法-2-3-4树和普通红黑树
到此这篇关于“数据结构和算法(Golang实现)(7)简单入门Golang-标准库”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法
学习golang开始前的准备工作
想系统学习GO语言(Golang
Go 语言进阶教程
为什么要学 Go
golang 大数据平台_从数据仓库到大数据平台再到数据中台
Golang笔记:语法,并发思想,web开发,Go微服务相关
Go 语言学习第一章节
使用Go语言一段时间的感受
「golang系列」浅谈Go语言

[关闭]
~ ~