scala应用高阶函数map和foreach打印如下三角形。
时间: 2024-04-30 14:24:39 浏览: 14
以下是使用Scala中的高阶函数`map`和`foreach`打印三角形的示例代码:
```scala
val numRows = 5
val triangle = (1 to numRows).map(rowNum => List.fill(rowNum)("*")).toList
triangle.foreach(row => println(row.mkString(" ")))
```
输出结果如下:
```
*
* *
* * *
* * * *
* * * * *
```
代码解释:
- 第一行定义变量`numRows`表示三角形的行数。
- 第二行使用`map`函数生成一个包含`numRows`个列表的列表,每个列表包含相应数量的星号。
- 第三行使用`foreach`函数打印每一行的内容,其中`row.mkString(" ")`将每个列表中的星号用空格连接起来,形成一个字符串打印出来。
相关问题
scala高阶函数定义两个数的运算
Scala中可以使用高阶函数定义两个数的运算,例如:
```scala
def operate(a: Int, b: Int, f: (Int, Int) => Int): Int = f(a, b)
val sum = operate(2, 3, (x, y) => x + y) // 返回 5,表示 2 + 3
val diff = operate(5, 2, (x, y) => x - y) // 返回 3,表示 5 - 2
val product = operate(2, 4, (x, y) => x * y) // 返回 8,表示 2 * 4
```
在上述代码中,`operate`函数接收两个整型参数`a`和`b`,以及一个函数`f`,函数`f`接收两个整型参数并返回一个整型结果。通过传入不同的函数,`operate`函数可以实现不同的运算。
scala map如何存放函数
Scala的Map可以存放函数,具体实现方式可以使用匿名函数或者函数引用来作为Map的值,例如:
val funcMap = Map("addOne" -> ((x: Int) => x + 1), "multiplyByTwo" -> ((x: Int) => x * 2))
其中,"addOne"和"multiplyByTwo"是Map的键,((x: Int) => x + 1)和((x: Int) => x * 2)是对应的匿名函数。通过键可以获取对应的函数,例如:
val addOneFunc = funcMap("addOne")
val result = addOneFunc(3) // result为4
希望能帮到你。