scala map如何存放函数名
时间: 2024-04-08 14:10:19 浏览: 99
Scala中的Map可以存放函数名,只需要将函数名作为key,函数本身作为value即可。例如:
```scala
val map = Map("add" -> ((x:Int, y:Int) => x + y))
val result = map("add")(3, 4) // result = 7
```
这里的`add`就是函数名,`((x:Int, y:Int) => x + y)`是一个匿名函数,表示将两个整数相加。`map("add")`就可以获取到这个函数,然后可以像普通函数一样调用。
相关问题
scala中map的value是一个函数名字。如何在通过key,直接调用value的函数
您可以使用以下代码来通过key直接调用value的函数:
```
val myMap = Map("key" -> (arg: Int) => arg + 1)
val func = myMap("key")
val result = func(2) // result = 3
```
在这个例子中,我们创建了一个名为myMap的Map,它的key是字符串"key",value是一个函数,这个函数接受一个Int类型的参数并返回一个Int类型的结果。我们可以通过以下代码获取到这个函数:
```
val func = myMap("key")
```
然后,我们可以像调用普通函数一样调用这个函数,并传入参数:
```
val result = func(2)
```
这里的result将会是3,因为我们传入了参数2,函数返回了2+1的结果。
scala中map的value是一个函数名字。如何在通过key,直接调用value的函数。value不能是匿名函数
可以通过以下两种方式来实现:
1. 将函数名存储在一个变量中,然后通过变量名来调用函数。例如:
val myMap = Map("key1" -> myFunction _)
val myFunction = myMap("key1")
myFunction()
2. 定义一个映射,其值是一个函数。然后通过key来获取函数并直接调用。例如:
val myMap = Map("key1" -> myFunction)
def myFunction() = {
// Function body
}
myMap("key1")()
阅读全文