Scala类组合和mixin混淆

时间:2018-04-20 04:55:53

标签: scala

我正在关注Scala文档here,我有几个问题:

  1. type T是什么意思?它的用途是什么?

  2. 这是什么语法:s charAt irichStringIter foreach println?这里发生了什么? s是方法调用charAt的收件人吗?

  3. 为什么RichIterator需要延长AbsIterator

  4. RichStringIter是否需要致电foreach并且由于它延伸StringIteratorforeach方法可以调用next和{{ 1}}呢?

  5. 在此之前,文档没有解释这一点。

1 个答案:

答案 0 :(得分:1)

  

T是什么意思?它的用途是什么?

类型T用作占位符,以根据需要使用不同的数据类型。为此研究泛型。

  

这是什么语法:s charAt i和richStringIter foreach println?   这里发生了什么?该方法的接收者是charAt吗?

您可以将String视为Char数组。 charAt将从String中给出该特定位置的角色。索引从0开始。

charAt方法应用于String,并返回匹配索引的Char

foreach是一种遍历给定序列的所有元素并返回Unit的方法。即你可以执行任何不返回值的任务

  

为什么RichIterator需要扩展AbsIterator?

因为从AbsIterator中重新生成hasNext和next元素并在RichIterator中实现foreach是一种设计选择。 AbsIterator也是抽象的。可以将其视为一个模板,可以根据开发人员对其他应用程序的选择重复使用。请在Scala中学习特征和抽象类以完全理解这一点。

  

RichStringIter的重点是调用foreach以及它   扩展StringIterator,foreach方法可以调用next和hasNext   太?

foreach将遍历序列中的所有元素。这也是一种设计,是Scala特性和抽象类的重要组成部分。浏览Scala特征和抽象类。 Scala中的编程对于这个

来说是个不错的选择