Из В статье Magnet Pattern я обнаружил специальный шаблон неявного преобразования.
Интересно то, что этот подход также работает для «перегрузок» с более чем одним параметром, так же кака также различные типы возврата.Если вы вызываете complete с несколькими аргументами, компилятор ищет неявное преобразование, которое может создать экземпляр магнита из кортежа, охватывающего все аргументы.Таким образом можно поддерживать до 22 параметров (максимальная арктивность кортежей в scala).
scala> def printInt(i: Int) = println(i)
printInt: (i: Int)Unit
scala> printInt(10)
10
scala> printInt(10, 20)
^
error: too many arguments (2) for method printInt: (i: Int)Unit
scala> implicit def toOneInt(is: (Int, Int)): Int = is._1 + is._2
warning: there was one feature warning; for details, enable `:setting -feature' or `:replay -feature'
toOneInt: (is: (Int, Int))Int
scala> printInt((10, 20))
30
scala> printInt(10, 20)
30
printInt((10, 20))
мне скучно, но printInt(10, 20)
это здорово!
Затем я запросил спецификацию этого специального шаблона из Спецификация языка Scala (2.12) .Однако я пока не могу его найти и, наконец, сдаюсь.
Может кто-нибудь показать мне, где находится особый образец из Спецификация языка Scala (2.12) ?