我有一个整数列表,需要遍历该列表并调用所有具有相同输入参数的不同函数,这是我的代码:
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)
只需随机整理函数,然后直接调用它们即可。
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)