2013-05-22 7 views

Odpowiedz

10

wierzę ze składnią:

(1 to 5).map(s"\\x${_}") 

Kompilator uważa, że ​​_ należy do funkcji s w takim przypadku nie będzie działać. Można to łatwo rozwiązać, wykonując coś takiego:

(1 to 5).map(i => s"\\x${i}") 

Czasami warto spojrzeć na to link dalszego wyjaśniania zasad zastępcze w stosunku do funkcji anonimowych.

EDIT: Zgodnie z tym stanowiskiem, składni zastępczego używanego do pracy, więc być może jest to błąd regresji lub funkcja, która nigdy nie była przeznaczona do pracy w ten sposób: https://groups.google.com/forum/#!msg/scala-internals/G_54LGj0zpg/REZfyXZ6-RwJ

+0

dodałem rozwiązania, które już było używając bezpośrednio w moim pytaniu. Chciałbym mieć więcej niż przekonania, jeśli to możliwe. 's' nie jest funkcją, jest to funkcja scala. –

+1

@ MikaëlMayer cóż, nie, to nie jest funkcja językowa. Jest on zdefiniowany tutaj: http://www.scala-lang.org/api/current/#scala.StringContext Możesz także użyć raw "", f "" lub nawet stworzyć własne interpolatory string (json "", sql "", ...) – VasyaNovikov

Powiązane problemy