00:00
好,呃,那下面呢,我们再给同学们介绍一下高难的标准库API文档,OK,那前面刚才呢,我讲到这的时候呢,同学们可能有一个疑惑,说老师,呃,你这个文档啊,嗯,好是好,但是呢,首先他第一个需要能够上网,第二个呢还需要能够翻墙。那这个就很麻烦,对不对,所以说呢。我要给大家介绍的就是说关于这个狗的标准库API文档呢,除了官方有,我们国内呢,也有一个网站,它也提供这个中文版的一个什么呀,就是勾难的标准库API文档,这样呢,我们用起来就比较方便了,就说你只要能上网就行。那你不需要翻墙也能用,对不对,就比较方便啊,比较方便,所以我们来看看这里面的有些东西,大家说一说啊,API刚才已经讲了,它就是应用编程接口,应用编程接口那么是go浪提供的基本。编程的啊,基本啊,编程的一个接口,说白了就是一堆API,就是就是一堆函数。
01:06
勾搭语言提供了大量的标准库,因此谷歌公司也为这些标准库提供了相应的API文档。啊,刚才同学们呢,也应通过这个方式能够看到文档的一个使用,对吧?呃,文档的一个使用。啊,刚才同学们呢,也用了一下,就是刚才我们进到这里面的时候,对吧,诶你看在这我们点这个package。对吧,点这个package就可以看到这里面的文档啊,没问题吧,嗯嗯,它这个文档用于告诉开发者怎么去使用这些标准库,以及标准库包含的方法或者叫函数对不对。那么浪的中文网它也提供了这么一个标准库,也就是说这个是我们国内的一个网站叫style。Study go,那么我们把这个呢,也给大家看一下啊,我把这个地址给大家。演示一下,好,我在这儿。
02:02
粘贴拷贝。好,我们看到这个网站。啊,你看这直接就直接到go语言的中文中文网了,看到没有,这就更方便,它全是音全是中文的,这用起来肯定是比较方便的了,你比如说我们还以刚才我们用过的这个这个包fmt。我们看看这个FFMT这个包里面有哪些API对不对,那么这个时候就比较方便我们找一下啊。Fmt,我们搜一下,其实在这也可以搜。在这也可以搜。FT。你看。他搜索完了过后呢。哎,这个地方好像没收到是吧。很麻烦啊,不去管它了,我们直接找一下吧。Fmt我们搜一下啊,在这找得到了啊,FT看到他说,哦,Fmt包实现了格式化IO函数,类似于C的print和看if,诶这样子是不是大家学起来就压力比较小很多了呀,对吧?所以说如果有了这个文档,那么实际上对于我们来说事半而功倍,就好像。
03:09
如果说有一天我们每个同学。学这个编程,这些都是我们的编程语言,包括编程的文档都是中文写的,你想想是不是我们学起来很方便啊?所以说你看这个有了一个中文的解释过后呢,我们突然感觉到压力小很多了,因为他已经告诉你了,哦,这个包实现了什么呀,格式化。还实现什么IO函数,还是还它类似于C里面的这两个方法,诶,这下子一目而了然了,再点进去。对吧,点进去哦,那就更好了,你看这个fmt里面,它居然把这个各个方法的参数包括使用都做了中文的解释,这多好啊。是不是非常漂亮啊,那我们找一找吧,那现在呢,我们比如说想搜一下。这个叫print。
04:00
F。现在写错了啊。Print print f好,收到了,看再看这里啊。你看这个地方诶,我们往下找一个,因为它还很多,这个不是我们要要的啊,往下找我们找这个方法才行。好,往下涨。马总。啊,这个这样找就有点不划算了,我点这吧,啊点这它这应该有个index index才对啊。应该是有一个的,但是他为什么没有提供出来呢?啊在这终于找到了,在index啊这比较简单了,好,我们点这个地方。Function function print f点进去哦,看这解释是不是就更清楚了,他说。PF根据format参数生成格式化的字符串,并写入标准输出。标准输出就是我们的控制台嘛,返回写入的字节数和遇到的任何错误,看到没有好,所以说这个呢,就非常的方便我们学习,大家可以在这个直接就通过这个我们中文的一个网站来学习我们的API,是不是很方便啊,对吧?好,这是第一个要给大家说的,而且呢,我还要给大家讲一讲啊,在构语言里面呢,它有一个特点什么呢?就是我们这个包的源代码,我们都是可以找到的,什么意思,大家看我的幻灯片。
05:31
大家看这里。我以这个FP为例给大家介绍看,这有个包,这个包下面呢,有很多函数,看到没有,那么这个包体现在我们源码,源码里面是在哪个地方呢?这些函数我们能不能看到它的源代码呢?答案是OK的,没问题。那大家跟着老师来看一看,我带大家去看一下fmt这个包到底在哪个文件夹下面,它的函数源代码又在哪里好不好,大家注意听啊,来给大家看一下。
06:03
首先呢,我们找到。找到我们。安装的这个go的SDK还记得。我们放到哪里的吧,Program下面的有个go。对不对,进到这里面有个src,看清楚没有,Src里面呢,你们注意看到有一个文件夹就叫。Fmt,注意我们的一个包啊,就基本上是对应一个文件夹的。你看这个fmt相当于就对应到我们的这个fmt这个包,那这个包里面的这些个函数在哪里呢?这些函数在哪里呢?跟上老师的思路,点进去,你看这里面有很多的源代源代码。源代码。那么这个每个代码里面,像这个print go或者是format go里面呢,就有它的一系列定义的函数,我们点进去看。
07:06
好,打开这个源代码了啊。打开这个源代码,这个源代码呢,很这个代码很长,大家看啊,1000多行,大家也不用去管它这个地方写清楚了,这是谁写的,看到没有啊,就是2009年的时候他就写出来了啊,是够的,这个作者写的,那么我们现在关心的是什么呢?比如说我很关心的是,就是我很想知道它的这个print f。LN这个源码是怎么写的?可以啊,大家看我搜一下。Contrive。Print。F,好回车,诶,Print LN。查找。往下走。我走,哎,同学们看。这个时候呢,我们就找到了这个函数的源代码,就print f原代码,它的原型是什么?这上面是这个函数的签名,下面呢是它的,它这个print f里面调用的是F。
08:05
Printed。LN,所以说你要看这里面代码呢,你可以再进一步追一下。哦,你就可以知道它的源代码是怎么写的,看这里下一步哦,同学们看它的源代码是在这,然后在这这里面呢,你可以继续往里面追。就可以看到他原代码是怎么写的,就好像有些同学学过Java,或者有些同学学过这个C,我们其实都可以把这个源代码注意一下,这样子呢,我们就了解的更清楚了。好,同学们,经过这个了解,我们就把这个go的标准库API呢了解的更加透彻了,是不是我们也可以通过中文的这个网站来学习我们的API?而且呢,大家也知道我们一个包对应一个文件夹,而这个文件夹下面呢,有很多的文原文件,原文件里面就有我们的函数,它是这么一个关系,对不对?好,我这里整理整理一下我们的笔记啊。
09:00
把几个点点出来。Go的。标准API。好,我把它放在我们的笔记里面去。我的标题二。好几点啊,我们整理一下。嗯,待会儿呢,我还要把这几句关键的话写到这里来啊。写到这里了。好,放一下。好,这是第一个。对吧。第二个。第三个,那么我们要找的就是这个网站。对吧,这个网站,这个网站长得什么样子,自己去看一下就行了啊,我这里再说明一下,我这里再补一个知识点啊,再补一个知识点什么呢?就是我们的。我们的这个包就是够啊,这样说,够烂的这个包。
10:00
Go的这个包和原文件。原文件和函数的一个关系。啊,见图。啊,那么你怎么去理解这三者的关系嘞,你怎么去理解这三者的关系呢?好,我画一个小图来试一下E啊来,朋友们注意听。他是大概是这么一个意思。OK。那么大家看啊。这。这个地方是我们一个包的文件夹。也就是说包呢?你看我们拥有的包其实都在这里。这一个文件夹就相当于对应一个包,但注意啊,这个文件夹下面可能还有新的包,不是说就说这个文件夹下面如果还有文件夹,就说明这个包下面还有纸包,能理解我的意思吧。啊,后面我们再说吧,这个大家不用那么着急啊,就说如果这个文件夹下面还有文件夹,说明这个包下面还有纸包,这是这是可以的啊,也是允许的,也是允许的,这个地方我们可以理解就是一堆包对应的原文件。
11:02
好,我们先把这个包立出来。注意听啊好。假设这是一堆包。好看一下。这边是我们的一堆包,对不对,这是一堆包。B的目录吗?这是多注意听讲啊,包。诶,我把这个先放到这里来。好,那么这个包呢,它对应我们的源代码呢,就对应这些东西,你比如说吧,我随便找一个啊同学们看,你看这里面有个。有个bites。BAS,那么这边会不会有个BY词的文件夹,果然有一个,看到没有,点进去也是一堆原文件,看到没有?所以说呢,这个包其实大家都知道,它对应这里面的一系列的文件夹。在哪里呢?就在我们的源代码里面去,它对应的是文件夹对不对。
12:01
诶好,所以说它对应文件夹看清楚没有。包对应我们的一个文件夹。啊,它这是一个对应的关系,所以说我给它插入这么一个图。我一个图标,选这个图片啊,选这个图标。对应的关系。OK。那么我们这个文件夹下面又有什么呢?有我们的原文件,比如说拜词吧。啊,或者叫我们熟悉的这个fmt,好,这里面呢,又有我们的原文件理解吧。就说我们这个包下面呢,会有很多的原文件。对不对。有吧,好,有很多原问题。好,我们又把它放到这里来,那也就是说我们每一个包对应的对应下面的一堆原文件,比如说。这个就不是一一对应的啊,就是。一个包对应一个,比如说我这儿有一个。
13:00
It吧,我补一个啊补一个。比如说我这里还有一个,我这没有截下来的啊,嗯,其实我当时应该把这个截下来就好了。我就补一个吧。我这儿强写一个啊。我写一个。这样把这个关系理清楚,比如说这有个fmt这个文件夹。确实也有啊,因为我截图的时候没截上。这个fmt这个文件夹在这是有的,大家看。只在下面,我当时没截上来对吧。这有个FT看到没有诶。就在这儿。那么这个这个文件夹里面呢,它对应的是什么呢?对应的就是这一堆的文件夹,那当然你这些文件夹也对应一系列的源代码啊源代码对吧,那源代码里面又有什么东西呢?各位同学往下接着走。每一个圆,每一个源文件,注意听啊,每一个原文件它有对应。里面的一堆函数,比如说以这个为准,以fmt里面有个print go为例。
14:02
看他这有一堆源代码。他有他自己的一堆源代码,其实就是一堆函数了。对吧,诶你看在这里。我是个亿啊,同学们。那现在呢,就相当于说在我们的每个源文件里边又拥有什么呢?把这个关系搞清楚,你这样子就学的比较轻松而又潇洒,对吧,诶你看。比如说这个print go。他呢?有对应go。对应我们的一个原文件,当然你其他的像do口go啊,或者是看点go也对应这个文件那。我们在用这个程序的时候,你看这个包是一个逻辑的概念,它对应一个文件夹,文件夹里面有原文件,原文件里面有函数,那我们要去调用一个方法,调用一个函数的时候是怎么调用的,调用的呢?在go语言里面啊,在go当中。够浪中调用。
15:01
调用一个函数的方式啊,后面我们还会讲啊,方式实际上就是包名。它是这样的,首先你引入一个包。你引入一个包,比如说这个包啊,引入一个包。那这个报名要肯定要知道的,第二呢,使用这点的时候呢。使用包中的函数。其实就是。明。第二函数名。第二函数名的形式对吧?诶这样就可以用到它了。这样就可以用到它了,所以说他这个逻辑是这样子的,看清楚没有,所以说。如果同学们以后想使用哪一个?包你就先import,然后这个包里面的函数呢,咱们就可以用了,当然这也有一些前提条件,你这个函数是公开的还是私有的,我们后面还会说,不是说这个包,这个print里面的原文件你都可以用,不一定啊,就说这个包是什么呢?就是FT里面只要是fmt里面的这个文件。
16:11
这个文件它都属于这个包。有,这个包下面有很多文件,这个文件里面有很多的函数,那么我用的时候不是以这个文件来调,而是用这个包名去调这面函数,其实说白了就是通过这个包名去调用这些函数,但是这个函数有个前提,这些函数呢都是。在这个包里面,你看我们随便打开一个文件,你看他第一句话就是什么呀。Package FT对不对,你们注意观察它这里面所有的啊,你们注意观察这里面所有的文件,它都是属于这个包的,为什么呢?啊,你看它全部都是package。对不对,这个咱咱就用不了了啊,这个测试的你不去管它点这个。点这个。有些他没有打包,那你就用不了啊,有些测试函数你用不了,像这个看。
17:03
MT,那首先他要这个包,他要package这个包,你在用啊,如果他没有写package这个包,那你就用不了,明白我意思吧,诶所以说他调的是是包名调这个函数名来解决的,当然里面还有很多细节,我们后面还会逐一的讲解啊细节。细节在后面还会说。细节后面还会讲啊,后面还会讲。还会啊,还会进一步讲解,还会说。还会抢劫,明白啊,明白。OK,好,关于这几个的关系呢,我们先给大家介绍到这里。我把这个图。给大家放到笔记里面去啊,这个图还是非常的有指导意义的。OK。保存一下。放到我们的笔记里面去。好,同学们,那关于这个go浪标准库,我们先说到这儿,还有一个啊,还有一个离线的文档,我也分享给大家,那么有些动作老师我连网都不能上怎么办呢?也比较着急,大家看在这里啊,有一个资料里面,有个API里面呢,我下载了一个。
18:12
下载一个离线版的,你点开它。里面也可以去。查看我们的包的一些东西,比如说package里面也有很多东西,但是呢,这是个英文版的啊,看点一下。是吧,点下里面呢,它也有这个说明,但是这是纯英文版的。啊,纯英文版的啊,他这也有index。它有index,你点一下里面的任何一个函数啊,它都可以到位啊,只是说唯一的缺点就是它是英文的,好吧,把大家到时间把这个文档呢也分享给大家啊,也分享给大家到时间从这个资料文件夹去找就行了,好,我把这个呢也写到这里。这有个离线版的。啊。还有一个离线版的也分享给大家,是。
19:01
五了啊。有一个。离线版的啊,这个文档也分享给大家。好点CH好。那这个文档呢,到时先大家从文件夹里面去拿就可以了,好,同学们关于这个标准库API的一些相关知识啊,我就给大家先介绍介绍到这里,大家能在学习过程中要经常去查下API,这样我们学习的时候就比较轻松啊,比较轻松而且能感觉到啊,就是我们能够驾驭这些API了。那这样子,你学习这样很轻松,作为一个作为一个熟练的go。这个程序员来说啊,我们要非常熟悉API,而且呢,我们要。快速的去学会一种能力,就是能够通过API来了解这个函数是怎么使用的,它的特点是什么,它是接受什么参数,它怎么用的啊,这也是我们作为一个程序员必须掌握的一个能力,老师呢,在讲课的时候啊,也会带大家去,呃,培养这方面的这些这些能力啊好,关于这课我们先说到这里。
我来说两句