在Scala应用程序中登录的好方法是什么?与语言哲学一致的东西,不会使代码混乱,并且维护成本低且不引人注目.这是一个基本要求清单:
我知道我可以使用现有的Java日志记录解决方案,但它们至少在上面的两个方面失败了,即混乱和配置.
谢谢你的回复.
可能重复:
Rails 3自定义路由,将多个ID作为参数
根据我的理解,获取资源的好REST URL如下所示:
/resource/{id}
Run Code Online (Sandbox Code Playgroud)
我的问题是,我经常需要获得大量的资源,同时又不想做一个单独的HTTP调用对于他们中的每一个.
是否有一个整洁的URL设计,以满足这一点,或者这不适合REST API?
Java API返回一个java.util.Map<java.lang.String,java.lang.Boolean>;.我想把它变成一个Map[String,Boolean]
所以想象我们有:
var scalaMap : Map[String,Boolean] = Map.empty
val javaMap = new JavaClass().map()   // Returns java.util.Map<java.lang.String,java.lang.Boolean>
Run Code Online (Sandbox Code Playgroud)
你做不到Map.empty ++ javaMap,因为++方法不了解Java地图.我试过了:
scalaMap = Map.empty ++ new collection.jcl.MapWrapper[String,Boolean] {
    override def underlying = javaMap
}
Run Code Online (Sandbox Code Playgroud)
和:
scalaMap = Map.empty ++ new collection.jcl.MapWrapper[java.lang.String,java.lang.Boolean] {
    override def underlying = javaMap
  }
Run Code Online (Sandbox Code Playgroud)
这些都无法编译,因为泛型 - java.lang.String与scala String不同.
有没有一种好方法可以做到这一点,而不是手动复制地图?
编辑:谢谢,所有好的答案,我从他们所有人那里学到了很多东西.但是,我在这里发布一个比我实际拥有的更简单的问题犯了一个错误.所以,如果你允许我,我会概括一个问题 - API实际返回的是什么
java.util.Map<java.lang.String, java.util.Map<SomeJavaEnum,java.lang.String>>
Run Code Online (Sandbox Code Playgroud)
我需要将其移动到Map [String,Map [SomeJavaEnum,String]]
它似乎不太复杂,但它增加了额外级别的类型擦除,我发现将其移动到Scala地图的唯一方法是深度复制它(使用下面建议的一些技术) .任何提示?我通过为我的确切类型定义一个隐式转换来解决我的问题,所以至少丑陋隐藏在它自己的特性中,但仍然感觉有点笨拙的深层复制.
Compojure不绑定POST表单中的字段.这是我的路线def:
(defroutes main-routes
  (POST "/query" {params :params}
    (debug (str "|" params "|"))
    "OK...")
)
Run Code Online (Sandbox Code Playgroud)
当我发布一个包含字段的表单时,我得到| {} |,即没有参数.顺便说一句,当我去http:// localhost/query?param1 = value1时,params不为空,并且值将打印在服务器控制台上.
表单字段是否有另一个绑定?
以下代码
(let [coll [1 2 3 4 5]
      filters [#(> % 1) #(< % 5)]]
  (->> coll
       (filter (first filters))
       (filter (second filters))))
Run Code Online (Sandbox Code Playgroud)
给我
(2 3 4)
Run Code Online (Sandbox Code Playgroud)
哪个好,但是如何在coll中应用所有过滤器而不必明确命名它们?
可能有更好的方法来做到这一点,但理想情况下我想知道上面可以替换(过滤器(第一个过滤器))(过滤器(第二个过滤器))的表达式.
谢谢!
访问链接树的所有节点的最佳方法是什么(所有节点都引用了父节点和所有子节点,根节点的空节点为null),以便在任何节点之前没有访问任何节点?布朗尼指出非递归.