这节再来看一下有关rose里边的切片。切片的英文叫slice,它是对集合,一般是数组或者向量的连续部分的引用。切片提供了一种引用集合的一部分数据的方式,不需要拷贝或者移动整个集合。说白了就是切片是对集合的部分引用。
下边来看一下怎么样创建一个切片。首先使用的是按的符号,再加上一个范围。在rose里边的范围就是这样的,前后是两个数字,中间是两个点,这个叫一个范围。下边就来看一下,可以使用一个数组或者是一个项链。
比如首先来定义一个数组,打开me,然后里边let一个a,速度一、二、三、四、五、六、七、八,ctrl alt加l进行格式化。有了这个之后接下来let一个s,s等于什么?s等于首先要按的一下a取它的引用。
接下来这里边给它一个范围,可以从一加点到三,这样就生成了一个切片s点print打印输出,ctrl shift加f十可以运行一下。现在会看到切片的结果是二和三,注意这个地方是小于三而不是等于三。前边这个一是可以的,缩影从零开始,这一是二,这个二是三。
这个是什么?数学里边就是避开区间,前面是b区间,后边是开区间,也是包含前边不包含后边。也可以这样,selight一个s1等于这个按得a,前边比如从二这个嗲点这种方式也是可以的。这个二嗲点是什么意思?就是从二开始取到结尾s一点printline。
再来看一下输出的是从二取到结尾看一下零一二,算出来是三四五六七八。还可以怎么样?从后往前去,let一个s3,s2等于什么?等于这个,还是按的a,这个是点点五,这什么意思?从五往前取,printland打印输出,ctrl shift加s1来运行。
现在会看到五之前的这些都取到了,还可以整个去按let一个s3等于直接一个按的a。现在s3是整个数组,ctrl shift加f10,现在看到的渠道和所有。
钻石切片里边先大概熟悉这些内容,其实切片还有很多其他的一些内容,因为涉及到其他的很多概念可能这个理解不了,后边再说。
第一个要知道怎么样创建一个切片,使用整个集合来创建切片。刚才说了就是按的整个集合就可以了,基本的一些属性,这边涉及到生命周期,还有其他的一些内容暂时先不说,这还有借用检查期。先不说切片的引用,仅引用就说切片也行,可以像数组一样来否循环,然后给s3,前边这个地方给它一个x,这样x点打印输出,通过这种方式也可以对它进行便利。
看一下店内的结果是一二三四五六七八,动态切片,动态切片就说可以通过编程,动态指定切片的类型,切片和自助串。其中有一个叫按的str,这是自助串切片,是一种特殊的自助串,表示自助串的一部分。
比如上边这个是一个自助串,把这个靠谱一下,重新创建一个top二代码,这是一个邹串,然后在另一个邹串可以就可以按的greeting,然后从零到五,这样就取邹串的一部分。看这个按的sdr,这个叫邹串的切片,切片到动态创建,刚才说了这个就是取到三,到三也可以给它一个范围区间。
注意事项里边很多内容还没有学习,生命周期和引用先不管,还有越界检查,这个知道,就说欺骗像数组一样通过下标来访问,要注意越界的问题,可能性后边再说。
比如要想修改切片,前边要加一个叫按的mto,现在比如现在来一个切片都可以,等于就是slice给它下标零,然后等于一个a,发现这个用不了,原因就是这边如果是想修改前边要加一个mutualmtu,这样才可以。
这是有关str还不行,另外一个比如给它定一个light,一个a,等于一个这样,一二三四,现在定一个s等于一个按的a,接下来访问s下标零,然后等于一个一百,看这行不行,这个是不可以的,怎么办?前边加一个叫mtomutable可变的一个,这样就可以直接访问它了。
另外会发现这个地方也不行,原因就是最前边本身也是不可变的,所以要把前边也加一个mpo,这样就可以访问了,如果不加这个,默认是不可变的欺骗数组的关系,跟他们说了就是切片就是集合数组或者是其他的一些wifi,这些集合的一部分切片的动态性。
刚才说了写一个函数动态的获得,开始缩影和接触缩影,然后动态的来给后边悬锤引用,后边这说讲了ras班的所有权,介绍这部内容。
以上就是这一节介绍ras班的切片。