Scala Trait Traversable | 第四部分
操作如下:
- 折叠:
操作包括reduceRight、reduceLeft、/:或foldLeft、:\或foldRight,这些方法将二进制操作应用于可遍历集合的连续元素。
示例:
// Scala程序实现折叠操作
// 创建对象
object Folds
{
// 主要方法
def main(args: Array[String])
{
// 创建数字列表
val x = List(8, 6, 4, 2)
// 应用折叠方法
// val y = x.foldLeft(0)(_ - _) 或
val y = (0 /: x)(_ - _)
// 评估下列表达式并显示其值
// ((((0 - 8) - 6) - 4) - 2)
println(y)
}
}
输出:
-20
这里,foldLeft(0)是期望的操作,其中零是“初始值”。
该方法在给定可遍历集合的连续元素之间应用二进制操作,从左到右移动并从初始值开始。
示例:
// 实现Scala程序的Folds操作
// 创建对象
object Folds
{
// 主要方法
def main(args: Array[String])
{
// 创建数字列表
val x = List(8, 6, 4, 2)
// 应用折叠方法
// val y = x.foldRight(0)(_ - _) 或
val y = (x :\ 0)(_ - _)
// 评估下列表达式并显示其值
// (8 - (6 - (4 - (2 - 0))))
println(y)
}
}
输出:
4
这里,foldRight将在集合的连续元素之间执行二进制操作,从左到右移动并以初始值结束。
示例:
// Scala程序实现折叠操作
// 创建对象
object Folds
{
// 主要方法
def main(args: Array[String])
{
// 创建数字列表
val x = List(8, 6, 4, 2)
// 应用折叠方法
val y = x.reduceLeft(_ - _)
// 评估下列表达式并显示其值
// (((8 - 6) - 4) -2)
println(y)
}
}
输出:
-4
这里,reduceLeft像foldLeft一样在集合的连续元素之间执行二进制操作,但将给定集合的第一个元素视为初始值。
示例:
// Scala程序实现折叠操作
// 创建对象
object Folds
{
// 主要方法
def main(args: Array[String])
{
// 创建数字列表
val x = List(8, 6, 4, 2)
// 应用折叠方法
val y = x.reduceRight(_ - _)
// 评估下列达式并显示其值
// (8 - (6 - (4 - 2)))
println(y)
}
}
输出:
4
这里,reduceRight将像foldRight一样执行二进制操作,但将集合的最后一个元素视为初始值。
- 特定的折叠操作:
这里的操作包括min、max、product和sum,这些操作作用于不同类型的Traversable集合。
这里, addString(B, “, “) 是期望的操作,其中,B 是一个字符串生成器,”, ” 是分隔符。
该操作将由指定分隔符分隔的元素集合添加到 StringBuilder 中。
例 :
// Scala 字符串操作示例
// 创建对象
object Strings
{
// 主方法
def main(args: Array[String])
{
// 创建数字集合
val x = Set(7, 8, 9, 10, 11)
// 应用字符串操作
val y = x.stringPrefix
// 展示使用的集合名称
println(y)
}
}
输出:
Set
这里,stringPrefix 将返回使用的集合的名称。
- 复制操作:
两个复制操作是 copyToArray 和 copyToBuffer。这些操作用于将 Traversable 集合的元素复制到数组或缓冲区中。 - 视图操作:
这里的操作是 view 和 view(from, to)。这些操作用于在 Traversable 集合上生成视图。
阅读更多:Scala 教程