今天我们为大家讲解Go语言中文件读写的相关操作.
文件是什么?
计算机中的文件是存储在外部介质(通常是磁盘)上的数据集合,文件分为文本文件和二进制文件.
os.Open() 函数能够打开一个文件,返回一个 *File 和一个 err .对得到的文件实例调用 close() 方法能够关闭文件.
为了防止文件忘记关闭,我们通常使用defer注册文件关闭语句.
Read方法定义如下:
它接收一个字节切片,返回读取的字节数和可能的具体错误,读到文件末尾时会返回 0 和 io.EOF . 举个例子:
使用for循环读取文件中的所有数据.
bufio是在file的基础上封装了一层API,支持更多的功能.
io/ioutil 包的 ReadFile 方法能够读取完整的文件,只需要将文件名作为参数传入.
os.OpenFile() 函数能够以指定模式打开文件,从而实现文件写入相关功能.
其中:
name :要打开的文件名 flag :打开文件的模式. 模式有以下几种:
支持==和!=操作就可以做key,实际上只有function、map、slice三个kind不支持作为key,因为只能和nil比较不能和另一个值比较.布尔、整型、浮点、复数、字符串、指针、channel等都可以做key.
struct能不能做key要看每一个字段,如果所有字段都可以做key,那这个struct就可以.有一个字段不能做key,这个struct就不能做key.array也是,元素类型能做key,那这个array就可以.
例如:
type Foo map[struct {
B bool
I int
S string
P *Foo
Ch chan Foo
}]bool
每一个字段都可以做key,Foo就可以做key.再如:
Fn func() Foo
M map[*Foo]int
S []Foo
有一个字段不能做key、Foo就不允许做key,而这三个字段都不能.
字段是递归检查的:
Sub struct {
M map[*Foo]bool
}
Sub的M字段不能做key,Sub就不能做key,Foo也就不能做key.
都说到这里了大家应该明白想把一个数据结构用于map的key,就不能包含function、map和slice.
Kotlin是一个跨编译平台的语言. 现在我们比较熟悉的是JVM平台的Kotlin/JVM,但实际上还有Kotlin/javascript和正在开发的Kotlin/Native. 对不同编译平台的Kotlin来说,各方面差异比较大,所以在此分开讨论. 先讲讲大家最熟悉的Kotlin/JVM.
以上就是土嘎嘎小编为大家整理的go语言实现文件比较相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!