go语言学习笔记10

error接口

go语言学习笔记10
我们定义了一个函数,然后设定了2个返回值,一个是返回a/b的值,再一个是返回错误的信息。
go语言学习笔记10
然后我们在主函数中调用我们定义的函数,接收值和错误的信息。

panic异常

go语言学习笔记10
上面的代码中我们在helloworld2的后面一条代码加上了panic函数,然后当程序遇到panic的时候会自动终止。

延迟调用

go语言学习笔记10
延迟调用会在程序最后的时候执行,例如上面的代码,输出完chognqing再输出test。
go语言学习笔记10
如果在defer调用时将函数参数先放在内存中,是一个独立的空间,不会因为改变值而影响数据。
例如上面的代码,虽然后面重新给a和b赋值了,但是在之前已经将a和b的值放在内存中了,所以最后的结果还是30。
go语言学习笔记10
但是如果不传递参数,使用外部变量,如果外部变量修改,会影响函数的值。
例如上面的结果为444。

recover拦截

go语言学习笔记10
go语言学习笔记10
错误拦截到出现错误之前。当我调用函数为10时:
go语言学习笔记10
如果我把recover去掉:
go语言学习笔记10
所以recover拦截会在错误之前拦截。

新建文件

go语言学习笔记10
os.Create(文件名)函数创建一个文件,文件名可以写绝对路径,也可以写相对路径。
他的返回值为文件指针和错误信息。
如果文件不存在会创建文件,如果文件存在会清空源文件内容。

写入内容

go语言学习笔记10
反斜杠在程序中表示的是转义字符,会将后面字符进行转义,但是\表示一个
在写路径时可以使用/正斜杠来代替\反斜杠。
我们利用文件指针fp调用writeString方法将字符串写到文件中。
注意的是\n不会换行,因为在Windows文本文件中换行是以\r\n,在Linux中换行是以\n

go语言学习笔记10
我们可以将一个字符串写入文件中,我们也可以定义一个字符切片写入文件中,我们用writeString方法还有2个返回值,一个是写入字符串的长度,另外一个是错误信息。
go语言学习笔记10
打开文件有2种方法:
1、os.Open(文件名) 只读方式打开文件
2、os.OpenFile(文件名,打开方式,打开权限) 如果文件不存在报错
打开方式:
os.O_RDONLY(只读方式打开) os.O_WRONLY(只写方式打开) os.O_RDWR(可读可写方式打开) os.O_APPEND(追加方式打开)
打开权限:
0-7 rwx 6 (rw-)读写权限 7(rwx)读写执行权限
go语言学习笔记10
用fp.Seek(0, io.SeekEnd)可以获取从文件起始到结尾有多少个字符。
用WriteAt([]byte(“test”), count)可以按指定位置写入。

读取内容

go语言学习笔记10
块读取,先定义一个buf为5个字节。然后我们用一个死循环输出全部的内容,io.EOF表示的是文件的结尾,当读取到文件末尾,返回值为errors.new(“eof”)这时候结束。
go语言学习笔记10
行读取,截取的标志位\n,可以使用ascll码中的任意字符,例如上面的代码,我们是以g分开进行行读取,也是利用死循环和break将文件输出完。