我经常发现自己只将一个元素Seq
传递给这样的方法:
def myMethod(myList: Seq[Int]) = { ... }
通常我这样做:
myMethod(List(42))
但是我觉得这可能不是最优雅的方式,如果我喜欢Scala的一件事,那就是通过减少我认为不可能使用的字符来吹嘘我的思绪。 / p>
那么,单项Seq
的表示是否比List(42)
更短或更优雅?
我可以想到几个更糟糕的选择!
42 to 42
42 :: List()
答案 0 :(得分:3)
最简单的内置方式可能只是使用Seq
伴侣对象的申请和写作
myMethod(Seq(42))
该apply函数返回默认的Seq
实现,即A List
,因此相当于使用List(42)
。
我不确定任何Seq
实施的名称是否较短,但您确实可以自行实施,或只是导入Seq
(或List
)同名别名:
scala> import scala.collection.{Seq => S}
scala> S(42)
res0: Seq[Int] = List(3)
答案 1 :(得分:1)
使用此隐式
可以获得更短的使用语法implicit def SingletonSeq(i: Int) = Seq(i)
因此
def myMethod(myList: Seq[Int]) = myList.size
myMethod(42)
res: 1