00:00
好,同学们,这一节呢,给大家讲解一下我们flux语言中的十种基本数据类型,我们呢,从布尔类型开始讲起。呃,首先把这些代码呢,给它清掉,我只留一个S等于什么好?呃,在我们的flax语言里面呢,布尔类型其实有两个保留的关键字,分别是错和false。啊,A等于false。好啊,那么现在呢,我们可以直接呢去输出一下S看看效果啊,也可以看到呢,点击submit之后呢,啊,这个结果呢是处啊此处呢,把这个S换成变量A。啊,点击提交啊,可以看到呢,结果就是files说明呢,我们的这个true和falses呢,可以作为一个关键字啊,直接给变量赋值。呃,另外呢,就是我们可以把一些类型呢,转换成我们的布尔类型。比如说我现在呢,有一个变量S,这个变量呢,啊是整数一。
01:02
啊,现在我试图呢,把它转成我们的布尔类型,现在呢,我有一个变量名称叫B,呃,然后呢,用一个叫做bol波尔的呃这个函数,然后呢,它有一需要一个参数。啊,这里需要注意在我们的flux语言里面呢,对于函数的调用啊,那么函数呢,它会有行参。此时呢,这个传参的时候,必须指定变量名称,必须指定这个参数的名称啊,点击一下之后,用冒号来表示要给这个参数传的值啊,现在呢,我们把这个S呢传进去。在这里呢,我们去显示一下B,好点击下。啊,我们可以看到呢,呃,这个一这个整数类型呢,通过这个布尔函数呢,啊,转换成了我们想要的布尔类型,现在呢,这个值展示出来之后就是处。好,那么现在我们再把它呢,再把这个S换成零。
02:05
顶上面的。可以看到呢,这个结果就是falses,也就是整数零呢啊,可以被转换成false,整数一呢,可以被转换成处啊,那么此处呢,我们再试一下,如果是负数会怎么样?零三。啊,可以看到呢,这个布尔函数它接收整数的时候呢,只能接收零或一啊,不能接收别的函,不能接收别的整数。现在呢,我们还可以试一下浮点数能不能转成布尔类型啊,把这个A呢换成0.0。哦,顶上面的。啊,可以看到呢,这个零零浮点数呢,也是可以被转换成布尔类型的啊,如果是0.1呢,点击提交。哎,可以看到这个值呢,也必须得是零和一,就算是浮点数呢,也必须得是零和一,呃,此处改成1.0。点击提交啊,可以看到呢,1.0能够正确的被转换为处。
03:01
啊,接下来呢,还有一些比如说呃,我能不能去转换这个字符类型。啊,可以尝试一下,如果这个字符串呢,字符串内容呢,就是处点击提交。啊,可以看到呢,这个字符串也是可以被转换成布尔类型的,前提呢是这个字符串呢,它必须符合布尔类型的字面值。啊,此处呢,我如果换成T大写T可以试一下尼萨。啊,这里呢,就会直接报错,说不能把这个字符串大写T转换成布尔类型啊,于是呢,我把这个T呢换成呃小写T呢,你可以试一下。啊,也不可以啊,其实呢,如果要转换成布尔类型的话,这个字符串字符串的值呢,就必须得是TE这四个字母啊,另外呢,我现在可以试一下false fall点一下提交。好,可以看到呢,呃,字面值是falses的,这个字符串也可以被转换成布尔类型。啊,那么这呢,就是我们布尔类型的一个用法。
04:00
好,接下来呢,我们去看一下别的类型。啊,现在现在呢,去看best这个类型字节字节数组。啊,打一下这个注释叫BYS。啊,可以对照我们的文档来看啊,这个顺序。在这个前面。和他的这个十种基本数据类型,我们现在呢,就是按照这个顺序来讲的。好啊,看一下字节这个数据类型,那注意呢,这里这个字节呢,它其实是字节数组,是BY词,它不是BY就是它呢,其实是一个字节序列。呃,在这个编程语言里面呢,我们没有办法去直接啊,去直接声明一个字节序列,我们呢,只能把某些东西转成字节序列啊,通过函数的方式来进行操作啊,这里呢,我声明一个变量叫做B,然后呢字符串给上。比如说叫ABC,接下来呢,我们通过这个BA次函数来把它来把这个变量转成字节数组啊,字节序列,接下来呢,我声明一个变量叫做X,好,我们接下来看一下这个变量的内容。
05:11
点击上。好,你会看到呢,这个地方,他说没有办法把这个字节序列呢,转成一个列的数据。什么意思呢,同学们意思呢,其实就是啊,你看我们flux语言。Flux语言它要求返回一个表流啊,我们说呢,先不说表流是什么啊,你可以把表流呢视为一张表啊,当前你可以把它表流呢视为一张表啊,那么要要是表呢,就有行有列。有行有列。啊,那么有列呢?我们通常说意味着什么呢?意味着有类型啊,那么如果拜次类型没有办法去作为一个列的数据说明什么?
06:01
说明X语言呢,它支持词。但是我们的英DB里面支不支持best呢?不支持best。所以说呢,这其实是我们啊,整个类型系统,就是flux语言里面的类型系统和in flux DB的一个类型系统的统一性的问题。啊,不仅是这里,我们之前呢,还要关注到给大家呢,讲过一个数据类型啊,给大家讲讲过一个东西叫做英发自币行协议。当时呢,在这个行协议的数据格式里面呢,也给大家说过啊,这个字段其实是有类型的。那么这里呢,其实也是行协议的类型和我们in DB类型的一个统一性的问题,当时我们看到行协议里面的类型,呃,他就没有说这个字节序列的问题。啊,所以说呢,它其实只是flux语言里面带来的一个类型啊,跟我们的in flax DB呢没有关系啊,另外还有一个比较头疼的点啊,就是我们的啊官方文档里面,你如果是看到in Fla DB,呃,这个数据库的官方文档,你会发现呢,它这里面没有提类型的事儿啊,你一搜这个type呢,你会发现,呃,说到类型的问题,只跟这个flux语言有关啊,这个inlu DB的这个文档里面没有提到啊,我这里面存储的数据呢,都支持什么类型?
07:30
呃,所以说呢,我们基本上呢,只能通过这种呃与程序的运行的逻辑啊,去判断这个in DB里面有没有什么类型啊,但是总的来说呢,先给大家说一个结论,就是in DB里面呢啊,其实支持的就是我们in Fla TB行协议里面的说的这几个类型。也就是这个整数,然后无符号整数啊,浮点数,64位的浮点数,也就也就是用八个字节表示的浮点数啊,以及这个字符串布尔这些类型。啊,最后呢,还是要算上一个时间戳。
08:01
呃,那么现在呢,我们回到这个flux语言上来啊,这里说呢,这个BA呢,不能作为一个一列的数据,那么现在怎么办呢?有一个办法呢,就是把我们的best词类型呢,转化成一个啊我们可以阅读的字符串啊,你想到的可能是这个函数在这里呢,我有一个变量叫C。啊,C等于。String string函数,然后呢,有一个V,再把这个X传进来,然后呢去展示C。好点提交。啊,你会发现呢,这样一下子呢,就把我们的这个字节序列呢,又转回成我们原先的字符串了啊,但是我想要的不是这个效果。那么我想要的是一个打印这个字节字是多少的一个啊,比如说可能是你比如说转成这个字节的序列啊,字节的二十十六,16进制表达,比如说可能是AC啊,然后什么8F啊,我希我希望通过这种方式呢,去展示我们的字节序列。
09:03
啊,那么这个in这个flux语言里面呢,还提供了一个函数啊,叫做display。来直接传递这个参数,好啊,这里呢,你可以看到爆红啊,他说找不到display这个函数的定义,但是你不用管,这个呢,其实属于呃,我们外部UI的一个bug啊,因为老师呢,已经帮你踩过这个坑了,所以说你相信我就可以了。呃,现在呢,我们可以看一下来,同样还是变量C,它这个C呢,现在是display返回的结果,点击提交。注意啊,你看我现在这个类型呢,是这样的。点击提交好啊,那么现在呢,其实我们的这个程序呢,就把就把这个呃字节序列给打印出来了,我们可以看到呃16进制表达的字节序列呢,是每两位表示一个字节,也就是AA定义的A对应的这个字节的16进制表达就是六一。
10:00
啊,然后呢,这个B对应的呃,16进制啊,字节的这个16进制表达呢,就是62啊,最后呢,就是63。这里呢,还需要注意啊,把这个平清一下。好。这里呢,还需要注意一个问题,就是我们在这个呃,VIVO地之后呢,你看到的原始数据,其实呢,在这里你可以看到有一个啊,这个字字段最下方有一个string,这个其实就是我们整个字段的一个类型。啊,那么你现在可以看到我们display返回的呢,还是一个字符串,呃,只不过和string这个函数呢,呃,返回的字符串的差异在于,呃,String呢,反呃返回的是这个字节序列进行UTF8编码之后的字符串,而我们的display呢,更倾向于展示这个数据的本来面貌,所以说这是两个函数不同的地方啊,那么现在呢,就给大家讲了一下这个flux语言的BI次类型的一个定义。那么BI次类型它起到什么样的作用呢?它其实起到一个序列化的作用啊,在我们的flux语言里面呢,你如果说是要向外啊,通过HTTP发送POS的请求,向外发送数据啊,那么你传进来的这个字符串呢,必须先转为base类型之后,再发送给再再传递给我们的的函数,让这个啊我们的flux语言呢,去发送这个网络请求。
11:27
这里呢,可以给大家先试一下,比如说呢,我现在就http post啊,可以看到呢,有一个post的方法。呃,然后我敲完这个HTTP之后呢,我们的这个前端的这个编辑器会自动帮我们补,帮我们补上这个import http,呃,然后呢,我们可以看一下post里面这是传什么参数。其中有一个参数呢,是URL啊,这里呢,不提示的话啊,你可以在这里面在右边直接去搜索HTTP.post。好。点到来之后呢,直接inject呢,自动提示。
12:02
把这个管道符呢给它删掉。现在呢,你可以看到,呃,这个是我们目标的URL,然后呢,这个是请求的头啊,请求头最右边呢,你可以看到有个东西叫data,然后data呢,它其实发送了一个字符串叫做body,但是呢,把这个body呢正式传递给data这个参数之前,要把body呢转成BA类型。啊,那么这就是我们BY的一个用法,在真正的查询过程中呢,其实BY起不到什么作用。好,最后呢,给大家说一下啊,一个工具方法。啊是这样,有些时候呢,我们会见到这个一个字符串,然后它的字面值呢,是通过16进制表达了一个字节序列。啊,那么现在呢,我们想知道这个字节序列呢,表示的到底是什么字符串。这个时候就需要对它进行一个哎编码,此时呢,我们可以看到有一个库呢,叫做hes,这里呢有一个best的一个参数,一个函数,我们现在呢把它呃调一下。
13:07
这里呢需要传递参数,比如说V啊V我们写把这个B呢传进来,然后呢,此处我用一个变量叫做C呢来接它。啊,接下来呢,我们可以去这里使用display。来,去展示一下。萨米特拉大。哎,可以看到呢,这一个字符串表示的616263,哎,这个字符串类型的值通过x.BA呢,它其实被展示为了啊,它其实按照字面意思去解析为了一个BA类型啊,那么接下来呢,我们再通过string类型,其实可以把这个呃,BA呢直接转换成UTFY编码的字符串。啊,我们可以看到缀呢V,然后把C把这个字节序列传进来。然后这个时候呢,我就用一个变量叫X来接住它。
14:03
哎,此处把X传递给我们的这个value。点击提交。哎,可以看到通过这两步操作呢,我们把一个字面字面值用16进制表示字节序列的这么一个字符串,哎解析为了我们U发编码的ABC这三个字母。最后呢,给大家说一下啊,这个has BAS这个函数呢,你在右边其实是搜不到的啊,也可以看到搜不到的啊,你搜BAS。啊,你会发现呢,只有一个,就是我们标准库里带的be。啊,可以看到,可以看到这个地方呢,补全完之后是吧,是我们标准库里带的best啊,那么现在呢,这个问题呢,就在于啊,我们的工具呢,有时候它并不反映我们flax语言里面的真实情况啊,那么我们怎么样去知道什么时候该用些什么东西呢?它其实只能取决于我们目前的官方文档。
15:04
啊,你只能去看flax官方文档啊,那么这个地方呢,为什么建议大家用最新的in Fla DB版本去学习flux语言呢?是因为官方文档呢,它只维护最新的啊一些函数信息。比如说呢,我们可以看到右上角呢,有一个版本的选项,点击下拉菜单,你会发现呢啊,你只能选择零点叉,而且呢,这个flux版本呢,我们可以看到不同的数据库呢,不同的数据库版本啊,它里面对应的flux版本并不一样,呃,那么我如果说现在用的是flax1.8,我想看0.65的办这个文档怎么办呢?这个地方我如果没有判断错的话呢,应该是没有办法啊,我们目前的话不能去看这个历史的flux版本的文档。呃,大多数时候呢,你只能去这个in class TB的文档里面啊,可以看到in TB。
16:01
好,然后呢,在这里面有一个que data啊,也可以看到这个query with flux,使用flux语言如何去进行查询啊,在这里面呢,会给你说一些Fla语言常见的一些脚本啊,但是呢,它不能涉及到flash语言的啊,所有的这个标准库,包括这个语法的介绍。啊,那么切换不同的版本呢,它里面的这个东西呢,可能会有些许的变化,但是总的来说呢,啊,都看你看到的都不是flux完整的文档。
我来说两句