📅  最后修改于: 2023-12-03 14:47:16.658000             🧑  作者: Mango
在 Scala 中,Stack 类是一种后进先出(LIFO)的数据结构,其中可以存储任何类型的数据。Stack 类提供了 map() 方法,该方法可用于 对 Stack 的每个元素应用指定的函数,并返回一个新的 Stack,其中包含所有修改后的元素。
使用 map() 方法的基本语法如下:
def map[B](f: (A) => B): Stack[B]
其中:
A
:Stack 中的元素类型。B
:返回 Stack 的元素类型。f
:应用于每个元素的函数。以下示例演示了如何使用 Stack 中的 map() 方法:
import scala.collection.mutable.Stack
object Main extends App {
val stack1 = Stack(1, 2, 3, 4, 5)
val stack2 = stack1.map((x: Int) => x * x)
println("Original Stack: " + stack1)
println("Modified Stack: " + stack2)
}
输出结果:
Original Stack: Stack(1, 2, 3, 4, 5)
Modified Stack: Stack(1, 4, 9, 16, 25)
在示例中,我们创建了一个包含整数的 Stack。我们然后将 map() 方法应用于该 Stack,其中给定了一个函数,该函数将每个元素的平方作为新的元素。最后,我们输出了原始 Stack 和修改后的 Stack。可以看到,原始 Stack 保持不变,而修改后的 Stack 含有每个元素的平方。
我们还可以使用简化的语法来创建函数:
val stack2 = stack1.map(x => x * x)
由于 Scala 具有类型推断功能,因此您无需指定函数参数类型。在本例中,Scala 将 x 推断为 Int 类型。