我有一些代码可以转换具有不同功能的序列元素:
someSequence map converterFunction
但是,有时我没有序列,只有一个值要传递给函数。为了与其他行保持一致,我想像那样编写
someValue applyTo converterFunction
所以在某种程度上它就像映射单个值一样。当然我可以用函数调用函数,我只是想知道是否可以按照我提出的方式编写函数。
答案 0 :(得分:2)
我同意ChrisK的看法,这个想法在代码可读性方面听起来不是一个好主意,但如果你真的想要它,你可以用这样的东西来做:
implicit final class MapAnyOp[T](val value: T) extends AnyVal {
def map[R](f: T => R) = f(value)
}
def convert(v: Int): String = Integer.toHexString(v)
println(List(123, 234, 345) map convert)
println(123 map convert)
答案 1 :(得分:1)
你可以将它包装在Seq:
中Seq(someValue) map converterFunction
如果 someValue 是一个自定义类型/类,您可以定义一个操作符,为您执行此操作,而不是显式包装。
someValue.seq map converterFunction