go语言标准库详解 go语言标志

golang标准库之sort 标准库sort实现了4种排序方法,插入排序 、 堆排序 、 快排 和 归并排序 ,但是并没有暴露给用户接口 。sort包会根据数据选择最优的排序方法(其实只使用了3种,归并排序 除外) 。
用户需要实现以下接口才能使用sort包的排序功能 。
对于常用的类型( 整型切片 、 float64切片 、 String切片 ) , sort包提供了内置的接口实现
使用举例如下:
举例如下:
Go语言os标准库常用方法Getwd/Getenv/Chdir1. os.Getwd()函数
原型:func Getwd()(pwd string, err error)
作用:获取当前文件路径
返回:当前文件路径go语言标准库详解的字符串和一个err信息
示例:
输出:
当前路径: D:ProjectsGomGoLab01
2. os.Getenv()函数
原型:func Getenv(key string) string
作用:获取系统环境变量go语言标准库详解的值
参数:key - 系统环境变量名
返回:系统环境变量的值
示例:
输出:
【go语言标准库详解 go语言标志】环境变量GOPATH的值是: D:/Projects/Go
3. os.Chdir()函数
原型:func Chdir(dir string) error
作用:将当前文件路径改变为目标路径(非真实改变)
参数:dir - 目标路径(即改变之后的路径)
返回:修改成功go语言标准库详解,返回 nil;修改失败(如:目标路径不存在的情况)go语言标准库详解,返回错误信息 。
示例一:
输出:
起始路径: D:ProjectsGomGoLab01
修改后的路径: D:ProjectsGoDemo02
示例二:
输出:
起始路径: D:ProjectsGomGoLab01
error: chdir D:ProjectsGoDemo03: The system cannot find the file specified.
注:文件路径 , Window 系统下默认是“” , 写在代码中时要用“”或“/”代替 。
golang中bufio包一、介绍go标准库中的bufio
最近用golang写了一个处理文件的脚本 , 由于其中涉及到了文件读写,开始使用golang中的 io 包,后来发现golang 中提供了一个bufio的包,使用这个包可以大幅提高文件读写的效率 , 于是在网上搜索同样的文件读写为什么bufio 要比io 的读写更快速呢?根据网上的资料和阅读源码,以下来详细解释下bufio的高效如何实现的 。
bufio 包介绍
bufio包实现了有缓冲的I/O 。它包装一个io.Reader或io.Writer接口对象,创建另一个也实现了该接口,且同时还提供了缓冲和一些文本I/O的帮助函数的对象 。
以上为官方包的介绍 , 在其中我们能了解到的信息如下:
bufio 是通过缓冲来提高效率
简单的说就是 , 把文件读取进缓冲(内存)之后再读取的时候就可以避免文件系统的io 从而提高速度 。同理 , 在进行写操作时,先把文件写入缓冲(内存) , 然后由缓冲写入文件系统 。看完以上解释有人可能会表示困惑了 , 直接把 内容-文件 和 内容-缓冲-文件相比,缓冲区好像没有起到作用嘛 。其实缓冲区的设计是为了存储多次的写入,最后一口气把缓冲区内容写入文件 。下面会详细解释
bufio 封装了io.Reader或io.Writer接口对象 , 并创建另一个也实现了该接口的对象
io.Reader或io.Writer 接口实现read() 和 write() 方法 , 对于实现这个接口的对象都是可以使用这两个方法的
注明:介绍内容来自博主 LiangWenT
,原文链接:,在查找资料时,发现这篇博客的内容很好理解
bufio包实现了缓存IO 。它包装了io.Reader和io.Write对象,创建了另外的Reader和Writer对象 , 它们也实现了io.Reader和io.Write接口,具有缓存 。注意:缓存是放在主存中,既然是保存在主存里,断电会丢失数据,那么要及时保存数据 。

推荐阅读