遍历列表以调用不同的功能

use*_*587 2 scala gatling

我有一个整数列表,需要遍历该列表并调用所有具有相同输入参数的不同函数,这是我的代码:

  def callRandomFunctions(config: config, prefix: String): ChainBuilder = {
    val randomList = Random.shuffle(List(1, 2, 3, 4))
    randomList.foreach { _ =>
      _ match {
        case 1 => func1(config, prefix)
        case 2 => func2(config, prefix)
        case 3 => func3(config, prefix)
        case 4 => func4(config, prefix)
      }
    }
  }

 def func1(config: config, prefix: String): ChainBuilder = {...}
 def func2(config: config, prefix: String): ChainBuilder = {...}
 def func3(config: config, prefix: String): ChainBuilder = {...}
 def func4(config: config, prefix: String): ChainBuilder = {...} 
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

missing parameter type for expanded function
[error] The argument types of an anonymous function must be fully known. (SLS 8.5)
[error] Expected type was: ?
[error]         _ match {
[error]         ^


[error] type mismatch;
[error]  found   : Unit
[error]  required: io.gatling.core.structure.ChainBuilder
[error]     randomList.foreach {
[error]                        ^
[error] two errors found
Run Code Online (Sandbox Code Playgroud)

jwv*_*wvh 6

只需随机整理函数,然后直接调用它们即可。

def func1(config: config, prefix: String): ChainBuilder = ???
def func2(config: config, prefix: String): ChainBuilder = ???
def func3(config: config, prefix: String): ChainBuilder = ???
def func4(config: config, prefix: String): ChainBuilder = ???

def callRandomFunctions(config: config, prefix: String): Seq[ChainBuilder] =
  Random.shuffle(Seq(func1 _, func2 _, func3 _, func4 _))
        .map(_(config, prefix))
Run Code Online (Sandbox Code Playgroud)