00:00
第一个呢,我们来看看channel使用的注意事项和细节,我整理了有四点也比较重要,第1.china呢,可以声明为只读或者止血的性质,什么意思呢?就说如果有一个管道,你只希你只允许他读,你就把它生明成读的,如果他你是希望他止写,你就把它写成止写的,那么我给他举个例子。好,那现在呢,我们新建一个文件夹。这个呢,我们叫做channel的一个细节。Nets,好,来新建一个案例,走。走,我们新建第一个DEMO啊,DEMODEMO01,然后在这边直接写文件了啊,同学们man点勾。没点过。好,然后呢,我把这个代码这一部分代码,通用代码先拿过来,好放到这面去就可以了。好,我们看第一个细节,第一个细节就是说可读可写的问题,就是管道。
01:04
管道可以可以声明为或者定义为啊声明为只读。制度。或者。或者执行。那首先我们说第一句话,就是在默认情况下呢,我们的管道是双向管道,在默认情况下管道是双向的。什么是双向呢?即即可读也可写,这个我就不说了,比如比如说你像这样生命一个管道,打个比方啊,比如说咱们有个这样的管道叫China。CCN,你像这样生命的穿,呃,直接这样写。比如说VRVR好,然后呢,你在声明它的时候,你说我有一个管道式。啊然后呢,Int这个呢,就是双向的啊,这个是双向的啊,所以说它呢,可以可读可写,可读可写这个我不举例子了,好第二个第二个但这个因为没有用,他会他会给给我报错啊先把它注销掉,第二个呢,可读的。
02:09
声明为口读啊,只读止止血吧,止血。只写的话呢,我直接把这个往这拉一下,同学们看代码,比如说我有个CHINA2,然后呢,如果只写的话,非常的简单,就这样写就可以了。就这样写啊,这个时候你这个管道只能往里面写,不能读了,我举一个例子,比如说你开了一个给他make了一个空间。啊,Make了一个空间,Make什么玩意儿呢,就China啊,但类型不能这样写啊,说老师在我定义类型的时候,是不是要把这个带上,这这这不行啊,这个是一种性质,它的这个呢,是代表它是有这个止血的性质,但是实际上它类型还是这个东西,就说它能存放的东西呢,还还是这种这种in特类型啊,你不要在这写,把那个把那个箭头写进去,好写三个好,同学们看,这个时候呢,我们往里面写是没有问题的。
03:05
简单写一下啊,二走。走,那么我就写一个20就可以了,好这时候你你看我保存啊代码呢,他应该不会报错,他最多他最多报告你这个没有用过啊,先打印出来下,PPT好,我打印出来下就表示他能用啊。好,CHINA2等于走。这个是它打出来是个地址啊,你这样是没没有错的,但是如果你这样写就会出问题,同学们假设我有个number,注意听啊,如果你这样写就会出错,说老师我从这个管道里面读一个给他好,你这么一写呢,就报错了,大家看我一保存,对方会提示有错误信息。啊,他说什么呀?他说in money operation就是无效的一个操作,什么呢?他说这个地方它是一个send on send不就是呃,发送的意思吗。
04:01
就说散,就是只能只能往里面给给我发送,那不能接收啊,所以这些东西就是错的啊,咱们就错了,错误的。好反过来呢,还有一种就声明为只读的也可以,那就说我们有时候呢,有一个有一个情况,我们是声明为声明为这个止血止读啊只读。那只读的话怎么声明呢?也非常的简单哈,各位同学你这样写,比方说我这里有一个CHINA3,那么我要说只读的话呢,箭头写到前面去就可以了。哎,这样一写的话呢,就是说我这个圈三呢,只能读而不能写啊,只能读而不能写,所以说你看你的语法这样写是可以的,So number2,注意听NUMBER2等于CHINA3。啊,这样这样写从语法上不会有错,但当当当然了啊,现在因为你们make肯定你执行会错啊,这个从语法上是可以的,那这是可以的。被重视。
05:01
他说没有用啊,不用我我简单用一下print好,然后呢,我写个NUMBER2,然后写个number这个代码就通过了。但是呢,你不能这样用啊,说老师我我从这读一个东西出来,这个就是读。啊读啊读是这样子,读这是啊写写不进去了啊三三。写一个进去啊,相当二。323写一个数据进去,你看会有什么后果,比如说我给他一个30,好,同学们看这个代码会在这报错。他说无效的一个操作符,因为它是一个什么呢?Receive receive only receive,就说我只能接收啊,我只能接收啊,不能写接收嘛,就说别人往你往我这边扔,好这个也是错的。好,这是它的一个基本的一个常识,那么有些同学就要问了,说老师那这个只读止写在什么地方可能用得到呢?好朋友们,那我举一个最佳案例啊,这个案例呢,我就不去写了,因为比较简单,大家呢,看一下幻灯片就可以过了,好同学们看我的代码。
06:07
比如说我有这么一个情况,我这里呢,Make了一个双向通道,这是个双向的,双向的管道。呃,这个大家应该可以看出来啊,这个双向双向的里面呢,我这边定义了一个退出的一个管道啊,然后你看我写的一,我编写了一个携程叫散,我还编写了一个携程叫re,一个发一个接,假设呢,我这个管道,我这个携程只希望CH。是只写的,只能往里面写。止血好,同学们看我怎么完成这个功能呢?我的意思说你在这个携程里面看到没有,我这样声明就说一旦我这样写了过后,你这个CH就变成了一个只写的。那你在里面操作只读就会报错,这样的呢,可以有效的防止我们的误操作。
07:03
我们的无操作。而且。而且这个东西呢,在底层他也做了优化。他又做了一个优化啊,所以说这个更好一点啊,效率更高一点,就是这样写,最最标准的一个写法,但前提你一定要清楚,你这个管道在这里只当做。只读的啊,只写的啊,只写的,同样假设你还有一个携程叫receive,你希望这个CH呢只读而不能写好,那这个时候呢,你将生命在这声明。好,同学们,老师就不去那个说了啊,就把这两点点出来就行了,因为其他的都是一样的啊,其他我就不多说了,好好有问题问。它这里面首先你声明的那个广告。对到一个。对啊,不会不会,它这个它这个准确的讲啊,类型,他们的管道类型仍然是ch in,注意听啊,仍然是CH,那么它这个只读止写呢,并不代表它的一种类型,是代表一种属性,明白吧,就代表它的一种属性而已,就要说说,呃,咱们这个人呢,对吧,人都是人,人都是人,比如说就是分个男分个女嘛,但人还是能匹配上的啊,人还是能匹配上,就这样子的啊,就相当于说你可以这样理解,当我们把一个双向的这么一个管道传给了一个这样的一种东西之外之后呢,那么这个CH在这里,它相当于把那个只写的那个操作,呃,只读的那个操作怎么样呢?给你封起来了,不让你用了。
08:42
就这么一点,但类型仍然还是这个圈印证这个能够代表他的一种属性啊,就这么理解啊,就这么理解好了,那这个呢,我们就先给大家板书一下,这是讲的使用的一个细节啊,使用的一个细节,好,我先把它板书到咱们的笔记里面去。
09:03
细节呢,我们给它来一个标题二,各位朋友来写个标题二对。好的,然后呢,我们这地方整理了前两点,对前两点。好,给它放到这里来啊,第一个。啊,第一个。好第二个,然后呢,我把这个案例,对刚才我们写的案例呢给同学们,呃,放到我们的笔记里边去,案例呢,就这么一点点东西啊,呃有哪哪地方需要注意呢,就是这这两点需要注意啊,需要注意好我把它给同学们板书到笔里边去。板出到笔里边去,那重点来说呢,呃,就是刚才所说的第一个,要知道默认情况下是双向的,第二点呢,怎么生命为止血呢,诶是要把它做成这个类。啊,这个就可以了,然后呢,这地方只读是这样子的啊,别写错位置了啊,主要看这个圈,这个箭头在圈的这个后边,我们就叫只读,这个箭头呢,在颤的这个前边,我们叫做啊前面是止止血啊说错了,在前面呢就是只读。
10:15
制度OK,非常的简单。好,这是他的这个案例,然后呢,我们又说了一下,他只读和只写的一个最佳最佳的一个应用吧,那这里呢,我在笔记里面也做了一个说明,好把这块呢给大家板说到正版啊,非常简单。好,同学们,关于颤的细节,第一部分我们先给同学们介绍到这里。
我来说两句