go语言学习笔记10,error接口,panic异常,延时调用,recover拦截,新建文件,写入内容,读取内容

本文介绍了Go语言中error接口的使用,如何处理panic异常并用recover拦截,以及文件的创建、写入和读取操作。通过示例代码详细讲解了延迟调用和文件操作的各种方法。

error接口

在这里插入图片描述
我们定义了一个函数,然后设定了2个返回值,一个是返回a/b的值,再一个是返回错误的信息。
在这里插入图片描述
然后我们在主函数中调用我们定义的函数,接收值和错误的信息。

panic异常

在这里插入图片描述
上面的代码中我们在helloworld2的后面一条代码加上了panic函数,然后当程序遇到panic的时候会自动终止。

延迟调用

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

recover拦截

在这里插入图片描述
在这里插入图片描述
错误拦截到出现错误之前。当我调用函数为10时:
在这里插入图片描述
如果我把recover去掉:
在这里插入图片描述
所以recover拦截会在错误之前拦截。

新建文件

在这里插入图片描述
os.Create(文件名)函数创建一个文件,文件名可以写绝对路径,也可以写相对路径。
他的返回值为文件指针和错误信息。
如果文件不存在会创建文件,如果文件存在会清空源文件内容。

写入内容

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

在这里插入图片描述
我们可以将一个字符串写入文件中,我们也可以定义一个字符切片写入文件中,我们用writeString方法还有2个返回值,一个是写入字符串的长度,另外一个是错误信息。
在这里插入图片描述
打开文件有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)读写执行权限
在这里插入图片描述
用fp.Seek(0, io.SeekEnd)可以获取从文件起始到结尾有多少个字符。
用WriteAt([]byte(“test”), count)可以按指定位置写入。

读取内容

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值