‫去年我们从技术的角度研究了“无数之眼”是如何工作的｡
‫在这段视频中, 我们将了解如何利用它｡
‫因为I可枚举的最酷之处在于, 我们通常使用的列表类型, 比如list,
‫cue数组, 所有这些实际上都实现了AI可枚举接口｡
‫所以这给了我们很大的自由, 我们将看看我们能做些什么｡
‫所以我将使用这个方法来获取集合｡
‫它会返回一个整数类型的i可枚举变量｡
‫因此, 我们需要在某个点返回一些内容｡
‫因此, 我们现在返回null, 以消除此错误｡
‫现在如果你想用i, 枚举的话, 我们需要添加泛型系统集合,
‫因为这里我们用的是整数, 我们要返回一个不可变的反整数｡
‫所以这意味着我们需要确保这个命名空间集合是泛型的｡
‫好吧, 那么现在这个get集合要做什么呢？
‫所以基本上, 我们可以有多种选择｡
‫因此, 如果我们选择选项一, 我们的get集合将返回一个列表｡
‫如果我们选择, 它会返回一个Q, 如果我们选择其他的选项, 比如三个, 四个,
‫或者五个, 它会返回一个整数数组.
‫所以这个get集合方法会返回一些完全不同类型的列表, 这取决于我们要传递给它的选项｡
‫这就是get集合背后的想法, 这也是使用数字接口中的I的力量,
‫因为正如我所说的, 列表, 队列和数组都实现了AI可枚举接口｡
‫好吧, 让我们来看看｡
‫让我们创建一个列表, 我将调用这个列表, 然后直接初始化它｡
‫所以这是一个整数列表, 数字是1, 2, 3,
‫4, 5, 然后我们用一堆值创建一个队列.
‫所以这里, 6, 7, 8, 9, 10, 我们要把它们包括在这个数字里｡
‫问：你看｡
‫Q数字｡
‫Q现在, 如果你把鼠标悬停在它上面, 你可以看到它也是一个通用集合｡
‫列表也是如此｡
‫这是一个通用集合｡
‫I可枚举泛型集合也是如此｡
‫所以你可以看到已经有了一个特定的集合｡
‫现在我要做的是检查一下有哪些选项可以选择｡
‫那么, 我过去的收藏方法是什么呢？
‫如果是一个, 那么我将返回我的数字列表｡
‫如果是两个, 我就把我的号码还回去｡
‫问：这是一个完全不同类型的列表｡
‫所以它包含不同类型的信息和不同的值, 但它实际上是完全不同的东西｡
‫所以这不是一个列表, 而是一个Q, Q不是a列表的一种｡
‫所以Q不是从list继承的｡
‫所以这才是真正有趣的事情, 我们能做什么｡
‫如果选项是其他的, 我们会得到LS的情况, 我们只返回1112, 13, 14,
‫50｡
‫在这个例子中, 你可以看到这个return语句永远不会被执行｡
‫所以我们可以完全去掉这一行, 因为如果我们有一个, if else, 语句,
‫并且有一堆返回值, 那么它基本上永远不会被访问｡
‫好吧, 我会的
‫现在我们有了这个get集合方法, 让我们在main方法中使用它｡
‫因此, 在应用程序的起点, 让我们创建一个未知集合｡
‫一个I可枚举集合, 它是一个泛型集合, 使用整数, 或者保存整数,
‫我们用这个变量来存储集合, 这个集合将被get集合方法返回.
‫通过我们刚才创建的方法, 现在我们给它赋值get集合1.
‫因此, 因为我们传递了一个给它, 未知集合现在将保持｡
‫呃, 我们看看这里｡
‫这张单子, 这张单子｡
‫不是队列, 而是列表｡
‫所以这是一件很酷的事情｡
‫所以现在我们可以在控制台上显示这个, 对于集合中的每个数字, 我们从get集合中返回｡
‫所以我们将使用for each来得到未知集合中的所有数字｡
‫因为如果某个东西是AI可枚举的, 那么如果一个列表类型, 比如一个数组,
‫比如一个Q, 是类型或者实现了AI可枚举接口, 那么我们可以在每个循环中使用它来遍历它, 这就是我们在这里做的｡
‫我们将遍历这个未知集合, 对于每个数字, 我们将把它写在控制台上.
‫所以我们来真实的的说一下｡
‫我们可以看到一, 二, 三, 四, 五被打印出来了｡
‫看来这一招奏效了｡
‫现在让我们做同样的事情｡
‫但也有收藏｡
‫所以得到集合, 然后我们传递选项2, 现在返回Q.
‫但是它会将它存储在泛型集合的基类型中｡
‫好吧, 我会的
‫所以unknown集合是基类型I, 可枚举的, 基本上就是我们的列表和我们的.
‫现在我们可以把它赋值给它了因为未知集合不在乎它是列表, Q, 还是数组,
‫因为它们都是.
‫遵循一个AI的指令是可枚举的, 所以他们遵循着它的实现｡
‫现在如果我们运行这段代码, 它就会显示出来｡
‫这里的队伍六､ 七､ 八､ 九､ 十｡
‫这是一个队列整型数, 它会显示出来.
‫好吧, 我会的
‫现在让我们看看如果我们输入任何其他类型的选项｡
‫假设我们给予它选项5, 它会返回这个case, 它基本上会返回一个数组｡
‫我们再来一遍｡
‫我们会看到它现在返回11, 12, 13, 14, 15｡
‫所以, 当然, 这些是以前的｡
‫因此这些为每个循环｡
‫我们没有删除它们｡
‫当然, 我们可以摆脱他们来看看｡
‫现在它只会做数组或显示数组｡
‫我们就这样了｡
‫它只显示数组｡
‫就这样了｡
‫对于这个例子, 你可以看到我们使用i enumerable的优势, 所以可以说, 任何类型的泛型列表的基类型, 我们想让它可迭代, 就像for
‫each loop well, e for each loop label,
‫可以说｡
‫这就是它的力量所在｡
‫非常有用的东西｡
‫在下一个视频中, 我们将看另一个例子, 我们将把一个I可枚举集合作为一个参数传递给一个方法｡
‫好吧, 我会的
‫这段视频到此为止｡
‫下一场见｡