00:00
我们下面来看一下包的使用细节,这也是很重要的一个知识点,那在这里呢,我一共给大家整理了有总结了有七个在使用包的时候要注意的细节,OK,那第一个呢,我们来看一下在给每在给文件打包的时候,该包对应一个文件夹,前面是不是讲过了,就是我们一个包呢,是对应一个文件夹的,比如这里的U。文件夹对应的包名就是UT文件包名通常和文件所在的文件夹名保持一致,一般为小写。注意这个问题,刚才老师讲了,通常为跟文件,就是说包名通常跟所在的文件夹名保持一致,那意思就是说。他也不一定一样。就这个不是一个硬性规定的,打个比方吧,同学们看。打开我们的这个代码,同学们看这里这个UTS,我写的是这个包名叫uts,这个文件夹也叫us,但是这两者并不是说勾浪里面并没有严格的说你这个报名就一定要跟他的这一个文件夹名保持一致,没有这个规定。
01:08
没有这个规定能理解我的意思吗?打个比方吧,比如说你这文件夹叫叫U我的包名,我也可以叫小名。能理解吗?比如我我这样写吧,我写个叫做。ABC这个苞米就叫ABC没问题吧,你看我这样用也是没有任何问题的,当然你这叫ABC过后我我把这个细节给你讲清楚了,过后你才知道怎么去用,明白吧,就说这个包名和这个文件夹名没有必然的关系,它一般是相同,因为一般相同,这样管理起来比较方便嘛,对吧,但是他没有做硬性规定,你看我就叫ABC,它叫UTS文件夹没问题,但是同学们看,一旦你这你这引引到这来过后,那你那你引到文件夹叫U,这是没问题的,那你这用调的时候,你再用UR调。这个就掉不起来了,因为你的报名叫ABC,所以说你看这个时候我们再去运行,它一定会报错。
02:06
抛起来,我们看效果。大家看见没有?他说on band的UT没这个包。没有这个包,他说你看告诉你了,它这应该是ABC,那也就是说你这个地方应该怎么写呢,叫ABC。听清楚这个叫ABC,能理解了吧?也就是说这个地方是包名,这其实只是引入到我们这个包包所在的那个文件夹,能理解吗?好,同学们,我们这样一使用,你看代码就no problem。看效果。没问题吧?你看运行起来没问题,所以通过这个呢,我们更加深刻的领会了包与文件夹的这种关系,当然这样写我虽然可以写成ABC,但是你这样写是不是感觉怪怪的呀。你虽然叫A,你赢了一个路径,叫这个路径,结果你的报名叫ABC,这不是很奇怪吗?所以一般情况下呢,我们还是跟他保持一致,虽然语法上并没有说一定要保持一致,但是习惯上作为我们开发人员来说,一般还是保持一致的,能理解,OK,那我把这个地方就改成uts。
03:13
呃,这个呢,还是按照我们约定俗成的习惯来命名报名OK。好,这样改就OK了。当我把它全部保存一下。OK,保存,保存过后我们再来运行也是可以的。没报错对吧?恢复到原先的状态了,这是第一个需要同学们注意的细节。第二个当一个文件要使用其他包的函数或变量时,需要先引入这个包,这个没什么可说的,就说说白了就是刚才老师讲的这个地方,就是你必须得在main里面先引入它。你不引入那是没办法用的,那引入的时候这个形式呢,第一种就是直接inport报名,这个也是可以的,第二种就是把这些报名写在一块,那也就是说如果我这样也是可以的,我把这句话放过来。
04:03
注意看写法啊,我不这样引,我直接单写一个import。再行不行呢,也是可以的。好,这块呢,我就不再去测试了啊,这个肯定可以的,但习惯上我们还是按照标准的规范把它写在一起,只是说可以分开写,但是呢,也可以啊,也可以这个放在一起,还有1.package,这个打包指令要放在文件的第一行,然后才是import。这一点跟Java是一样的,就打包指令一定是放在文件的第一行,然后才是import,然后才是我们的什么样才是我们的这个函数的这些执行。第三、第四点要注意一点,就是在这个引包的时候要注意点,引爆时路径是从go pass的src下面开始计算的。不用带src,因为编译器会自动把这个src引入。那你这个go pass在哪配置的?还有印象吗?就是这个Co pass,他你凭什么这地方不写完整的路径就能找到呢?原因是因为它会默认从go pass。
05:07
开始下面的src去开始定位。其实他也他首先会从那个go root去找,但是呢,因为go root我们一般不会去放这种这种打的这种。这这这这种我们的自己的包,所以说他go root没找到,他就从这个go pass开始找了。Go pass这个路径在哪里的,你自己要很清楚,大家看一下,我们原先在计算机环境变量里面,其实我们是配置过的,大家看。打开高级设置里面环境变量,我们定了一个go pass,看你的go pass就是D。盘下面的go project。它实际上是从这个路径下面的src开始去定位的。这就是为什么我们讲过。在我们去创建一个项目或者工程的时候,通常我们是在这个路径下面去建src,在src下面再去建我们项目,原因就这样子的。
06:05
作为一个购员的开发规范,我们大家都应该去遵守,OK,你不能随随很随便的乱写啊,不能随便的乱写,因为他引包的时候,它会涉及到这些内容。OK,我们又把这个细节给他讲了,那这里看到一个是。报名和文件夹的关系,我们说了第二个,我们再说了一下引包需要注意的问题,引爆有两种形式,然后呢,Package指令要写在最前面,然后才是引爆指令,另外呢,在引爆的时候这个路径。路径不是从go root路径的src下面开始定位的,但是不用写src,因为编译器会自动带src能理解好。这是两个细节,希望同学们注意一下。来我把这两个细节先放到笔记里面去。下面当然还有别的细节,我们再注意展开啊,就是包使用的注意事项和细节讨论。那你也跟上思路。
07:01
细节讨论。这有点卡顿了啊,它正在保存讨论,OK。那现在呢,我们把它标成我们的标题二,那刚才老师已经总结了两点对吧,第一个是这个知识点。放到这里来。一好,我把它稍微的板述一下。我把它板书一下。OK,好,把它放在一起啊,同学们。摆放在一起。这是第一个细节,那第二个细节呢,需要刚才老师讲的,在引入我们这个包的时候需要注意的地方,当一个文件要使用别的包的函数的时候,或者是变量的时候,我们需要引入,那引入的时候需要有几点注意呢?我这总结了四点,大家注意听哪四点?放过来。对不对,这四点。大家要有个印象好不好?就是这就是一些规范。这就是一个规范,好把它稍微的板述一下。
08:00
诶,这个地方还不能这样板书往下拉下。第一个需要注意的地方,这是第二个需要注意的地方。对吧,引入第二种形式,第三个需要同学们注意的地方,Package要写在第一行,第四个需要同学们注意的地方,好整理完毕,那么这个时候呢,我就用这个小点往这个往这边挪一下,诶,他为什么老是这样子给我删掉了呢,怪啊。有点儿不理解。Table一下就就删掉了,乖。好,那这个地方我就这样子吧,给大家来一个这样的小箭头区分一下好吧。诶,这样区分一下比较好。再来一个小箭头,诶。小镜头怎么变成这个德行了?哼,嗯,乖啊。好,这样子。好,先这样子吧,然后这是一个细节。好,我的天,受不了。那这样板书先暂时这样,先放放先放在这。这是呃,又一个需要注意的地方,那么第三个细节我们再来看。
09:03
这是刚才说的这一个细节关注,为什么老是这样子乱来啊?稍微的整理一下啊,不相信了哈,不相信了,为什么老这样子,我用记事本把它格式给它转一下,可能是在粘贴的时候带了一些格式进去对不对。把这个格式给它去掉。这个格式很讨厌,在这里。你看这边国家有格式格式啊,有格式在里面,它会自动的给你进行一个处理,我把格式拿掉了。拿掉过后呢,这样子就应该不会再有问题了吧。好,这是第一个点,这是第二个。对吧,诶这是第二个,这是我们说的第三个。对吧,这是我们说的第四一个。这个稍微的往里面挪一下。这样就就对齐了吗?这样就对齐了。有时这个板书控制起来,诶还是有点小麻烦,好,这是刚才第二点里面的四个注意事项,第三个细节我们来看一下,注意听啊这个思路,第三个细节呢,是为了让其他包的文件。
10:08
可以访问到本班本包的函数,则函数名的首字母需要大写类似于其他语言的public,这样才能跨包访问,比如说像us里面的这个CAL函数。是不是如果刚才大家是不是已经给大家演示过了,如果在这个u tr里面这个C我写成小写的。其实别的包是无法访问的,对吧,这个呢,其实刚才已经说过了,这里呢再给大家强调一下来,我把这第三点也放到笔记里面去,就是整理总结的一个过程。好的。好,这是这一点,那这一点呢,我把这个图也给大家截过来。有一个图形更能说明问题,就是说的第三一个细节。就是怎么样让我们的函数或者是变量可以让其他包进行访问的一个说明。
11:00
注意啊,在这我写了该函数名的首字母需要大写。当然,如果你是个变量怎么办呢?说老师我在这个有一个包,这个包里面我定一个变量,需要别的包去使用这个变量,一样的使用方式能理解吗?后面我们还会用到,打个比方啊,同学们注意听我稍微展开一点。比如说。我在这个U72包里面,我定义了一个变量叫number。啊,Int等于比如说300。我需要在面包里面去用这个变量,我可以用到吗?也可以,但是你需要把它。写成N。好,如果你这样写的话,你用你在面里面去用这个NUMBER1的话,其实也是可以用到的,比如说我上来给我给简单演示一下format。好,我写一句话啊,就说you you tears这个里面的NUMBER1对吧,点go里面的NUMBER1,那这个时候我怎么用呢?老规矩一样的,还是写上包名。
12:01
第二。什么呢?就是刚才我们NUMBER1这个变量的名称,这样也可以用。但是你这个N必须同样也是大写啊,你不大写就没有办法使用,因为你你不大写代表是什么呀,持有的那我运行一下。看效果。看效果,是不是我们也访问到了呀。是不是UGO里面的number这个值等于300?是不是刚才我们定的这个300啊,是吧,但是你如果小写就不行了,小写还是不能访问,能理解好这次我们讲的又一个细节。要一个细节好,第四一个再访问其他函数时,其语法是包名点函数名,比如main go里面的这种调用方式,这个不再多说了吧。哎,其他报数报的报的函数或者是变量啊,当然也可能是变量。对,变量你做成这个大写,其实就是全局变量了,好,我把这一点细节也给同学们放到笔记里面去,这里好。
13:00
第四个细节说完了。那同样我把这个图呢,也给大家放到笔里面来。这是我们所说的第四,一个细节加上思路。好,我们再看第五个细节,朋友们,第五个细节,如果包名比较长,够支持给包取个别名,注意细节,取完别名过后,原来的包名就不能使用了,这是什么意思呢?给大家演示一下。比如说吧,同学们现在现在我我想这样子说啊,听我讲。就这样讲,比如说我在这个main里面呢,我的包名,我我我引入这个包所在的文件夹了,对不对,那么我在用的时候,其实我是用urs来进行访问的。来访问的,但是呢,你也可以给它取个别名,给这个,给这个文件夹对应的包取个别名,怎么写呢?打个比方,我这样写个U。但实际上我不会这么这么干啊,我,我写了个U。但这个U呢,太奇怪了啊,就UT啊。
14:00
你原先是u uts,那这样我这样我一用的话,就相当于我给这个文件夹所对应的包取了一个别名叫uts,那这个时候我在用的时候呢,我应该怎么用呢?我就用这个名字来访问。但你你你这样写了过后,原先这个报名也用不了了啊。这个也用不了了,我们看这写的什么话。你看他说你没用过,你没用过这个时候你就必须按照新的这个别名的方式来访问这个包所在的函数和变量。看到没有?这样我一保存它就好了。能用起来吗?当然可以用,那我给他试一下啊,为了看到这个效果,我在这个number后面加了一个波浪号。来看效果。你看这个时候呢,Number后面有一个波浪号。说明这样用也是可以的,就是有时候你看到别人在前面,在这个引入的这个路径前面写了一个别的变量,这个就是相当于给这个文件夹所在的包取了一个别名,当然你要取了一个别名过后呢,你在这个所在的文件夹,就在这个文件里面,在这个梦点go里面去用这个包的变量或函数的时候,就得用这个名字了。
15:18
你用原先的这个名字不好使了啊,你用原先这个名字也不好使了,听听清楚了没有,也不好使,就是他会告诉你这个没有用过,你看。你要写他,他直接告诉你,诶我看看这个是不是两个都可以,你看也不行,你看也不行,他说onde find的UTS,现在说他这个名字就就在这个地方是生效了,你原先这个就用不了,你要用原先这个呢,你这怎么办呢,你你就不要取别名。你看这样子就是对的,OK,好下面这两个又又又得报错,好下面这两个得报错,把它改一下。能理解老师说的东西吗?好,这个意思应该是很好理解吧,很好理解,好,我把这个呢给大家。呃,说到这里啊,我把这个语法给大家保留一个吧,不然大家可能以后看起来就不知道是什么意思了,比如说我这写了个U。
16:04
T,好,我讲我就写到这。写到这,我下面说一句话就行了啊。下面我就不把整个文件给大家截过来了。比如这样子的。OK。那这个呢,我对刚才截的这个图呢,做一个说明。说明一下,诶,注意听说明啊。说明那如果像上面处理了啊,如果给这个包。八。取了一个别名,取了别名。去了别名。别名则应该,应该则需要,需要使用别名方式。需要别名,使用别名。别名来来访问或者来使用啊,来访问该包,该包的函数和变量,否则报错,嗯。
17:02
好,这个刚才大家也看到这一点了,对吧,否则就会报错,报错那么刚才我说了,则使用别名来访问该包的函数和变量。你比如说刚才这样取了个名字,名字叫uts,那就可以了,好。第六一点,那这个前面这个细节呢,我们就先说到这,后面还有还有第二部分细节呢,我们放到下个视频。
我来说两句