Piszę wrapper do usługi sieciowej REST i chciałbym mieć mocno napisany interfejs API Scala.Czy możliwe jest posiadanie mapy [String, Any] z nazwą i wartościami nazwanych parametrów w Scali?
Oto co robię do tej pory:
def getMentions(count: Option[Int] = None,
sinceID: Option[TweetID] = None,
maxID: Option[TweetID] = None,
trimUser: Option[Boolean] = None,
contributorDetails: Option[Boolean] = None,
includeEntities: Option[Boolean] = None) : List[Tweet] = {
val parameters = Map("count" -> count,
"since_id" -> sinceID,
"max_id" -> maxID,
"trim_user" -> trimUser,
"contributor_details" -> contributorDetails,
"include_entities" -> includeEntities)
/*
* Convert parameters, which is a Map[String,Any] to a Map[String,String]
* (Removing Nones) and pass it to an object in charge of generating the request.
*/
...
}
Podejście to działa, ale wymaga mnie ręcznie wygenerować mapę parameters
. Gdybym mógł uzyskać dostęp do mapy reprezentującej parametry i ich wartości, to co robię byłoby znacznie czystsze.
Czy wiesz, czy można go używać z sbt? – mariosangiorgio
Rozgryzłem to. Wymaga to po prostu zmiany wersji scala 'scalaVersion: =" 2.10.0-RC2 "' i zaimportować ' import language.experimental.macros' w plikach za pomocą funkcji – mariosangiorgio