вопрос о синтаксисе scala: / и ~ - PullRequest
4 голосов
/ 27 мая 2011

Может ли кто-нибудь мне помочь и объяснить, что такое :/, а затем ~ в scala, например:

json = http(:/("api.twitter.com") / "1/users/show.json" <<? Map("screen_name" -> "aloiscochard") >~ { _.getLines.mkString })

от: http://aloiscochard.blogspot.com/2011/05/simple-rest-web-service-client-in-scala.html

1 Ответ

8 голосов
/ 27 мая 2011

В коде, на который вы ссылаетесь, обратите внимание на import dispatch._.Это импортирует диспетчерскую библиотеку .

. В этой библиотеке мы находим объект :/, который имеет метод apply, так что :/("api.twitter.com") означает.

Кроме того,в коде тоже нет ~ - только >~.В Scala любая группа символов - это имя метода, которое можно использовать как оператор.Так что >~ должен быть методом для чего-то.

Оглядываясь, мы обнаруживаем, что HandlerVerbs определяет метод >~, который будет «Обрабатывать ответ как scala.io.Source в блоке».

Чтобы понять, что код делает в деталях, вам нужно понять библиотеку dispatch, которой я не занимаюсь.

Эта библиотека, кажется, очень перегружена DSL.Таким образом, это может быть отличным выбором, если вы выполняете много и много диспетчерской работы (потому что, надеюсь, отправка может быть выполнена интуитивно и чисто).Но это может быть ужасным выбором для одноразового использования, так как вы должны быть достаточно хорошо знакомы с библиотекой, чтобы понять, что она может делать (из-за выбора очень коротких имен методов, таких как >~).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...