Scala:我可以将选项转换为可变参数吗?

标签 scala option variadic-functions

我有一个 Option :

val myOption: Option[Int] = fooBar()

以及采用可变参数参数的方法:
def myMethod(a: String, b: Int*) = {...}

有没有办法将选项作为可变参数参数传递给方法?即如果选项是 Some(3)然后通过3,如果是None然后什么都不通过。

实验答案
scala: How to pass an expanded list as varargs into a method?我尝试明确输入参数:
myMethod("xyz", myOption: _*)

但是编译器提示它需要一个 Seq[Int] .看来Option不实现 Seq并且没有 predef 隐式转换。

鉴于编译器想要一个 Seq ,我当然可以通过myOption.toList: _* ,但有更好的方法吗?

最佳答案

myMethod("xyz", myOption.toSeq: _*)

关于Scala:我可以将选项转换为可变参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320638/

相关文章:

Scala 最佳实践 : Trait Inheritance vs Enumeration

scala - 总结两个选项

java - 这些方法是如何模棱两可的? (一个采用数组,另一个采用可变参数)

Char 和 int16 数组元素都显示为 32 位十六进制?

C++ 变量参数错误

Scala 的空集 : . .. 不符合预期类型 Set[Nothing]

像数据结构这样的scala动态多维可变数组

scala - 创建一个运行程序的新任务

jquery - jQuery选择选项图像

scala - 如何找到两个 Option[Int] 的 min() 或 max()