Неявный Scala с переменным списком аргументов

У меня есть библиотечный метод, принимающий список переменных аргументов и производящий данные

class Data
def process(elems: String*): Data = new Data

и я хочу, чтобы мои строки были неявно преобразованы вData

implicit def strToData(ts: String): Data = process(t)

поэтому я могу написать что-то вроде

val data: Data = "one"

но я хочу, чтобы кортежи строк также были неявно преобразованы. Я добавил еще один неявный

implicit def strsToData(ts: String*): Data = process(ts: _*)

компилируется нормально, но конвертировать не удается

val data: Data = ("one", "two")
val dat3: Data = ("one", "two", "three")
val dat4: Data = ("one", "two", "three", "four")

с

found   : Seq[java.lang.String]
required: this.Data
val data: Data = Seq("one", "two")

Есть ли способ неявно преобразовать кортежи или причина, по которой это может быть достигнуто?

Обновление:Кортежи могут быть любой арности.

7
задан lambdas 24 September 2012 в 05:24
поделиться