在Scala中有一种很好的方法可以在List [Int]和java.util.List [java.lang.Integer]之间进行转换吗?
我正在与Java(Thrift)接口.
JavaConversions支持List - > java.util.List,并且Int - > java.lang.Integer之间存在implicits,但是我可以告诉我仍然需要额外的传递来手动进行转换.
val y = List(1)     
val z: java.util.List[Integer] = asList(y)  map { (x: Int) => x : java.lang.Integer }
Run Code Online (Sandbox Code Playgroud) 如何在Scala中修剪字符串的开始和结束字符
如果输入是
__PRE__
我需要输出为hello
在Scala中是否有任何内置方法可以执行此操作?
有几次我看到像这样的Scala代码:
object Doer{
   def doStuff(op: => Unit) {
      op
   }
}
Run Code Online (Sandbox Code Playgroud)
以这种方式调用:
Doer.doStuff{
      println("Done")
}
Run Code Online (Sandbox Code Playgroud)
对我来说奇怪的是函数如何作为花括号之间的代码块传递给另一个函数.甚至没有括号通常标记参数列表的开头和结尾.
这个Scala语法/功能的名称是什么?在什么情况下我可以使用它?它在哪里记录?
我正在尝试使用mongo db,我想询问是否可能只获取文档的特定部分?
例
{
  "name" : "MongoDB",
  "info" : { x : 203, y : 102 }
}
Run Code Online (Sandbox Code Playgroud)
我只想要的内容info.  
我发现的最接近   db.collection.find({}, { info: 1 })  但是这返回了我的信息:内容,我想只返回内容.
可能吗?怎么样?
我有一个包含用户名的现有MongoDB集合.用户名包含小写字母和大写字母.我想更新所有用户名,因此它们只包含小写字母.我试过这个脚本,但是没用
db.myCollection.find().forEach(
 function(e) {
 e.UserName = $toLower(e.UserName);
 db.myCollection.save(e);
 }
)
Run Code Online (Sandbox Code Playgroud)
斯科特,非常感谢任何关于让它工作的信息
我正在学习mongoDB的作业,我正在研究查找每个州拉链最多的城市
db.zips.distinct("state", db.zips.aggregate([ {$group:{_id:{state:"$state", city:"$city"},numberOfzipcodes:{$sum:1}}}, {$sort:{numberOfzipcodes:-1}}]))
Run Code Online (Sandbox Code Playgroud)
查询的聚合部分似乎工作正常,但当我添加不同的我得到一个空结果.这是因为我在身份证上有州吗?我可以做一些像distinct("_ id.state ??或者你有其他任何提示吗?
谢谢!
我正在尝试在Scala中使用TypeSafe来获取配置文件中的列表,例如something.conf http://typesafehub.github.io/config/latest/api/index.html
在something.conf中我设置参数:
mylist=["AA","BB"]
Run Code Online (Sandbox Code Playgroud)
在我的Scala代码中我做了:
val myList = modifyConfig.getStringList("mylist")
Run Code Online (Sandbox Code Playgroud)
简单的配置参数工作正常,但有人可以给我一个如何提取列表的例子吗?
干杯!
我已经定义了'使用'功能如下:
def using[A, B <: {def close(): Unit}] (closeable: B) (f: B => A): A =
  try { f(closeable) } finally { closeable.close() }
Run Code Online (Sandbox Code Playgroud)
我可以这样使用它:
using(new PrintWriter("sample.txt")){ out =>
  out.println("hellow world!")
}
Run Code Online (Sandbox Code Playgroud)
现在我很好奇如何定义'使用'函数来获取任意数量的参数,并且能够单独访问它们:
using(new BufferedReader(new FileReader("in.txt")), new PrintWriter("out.txt")){ (in, out) =>
  out.println(in.readLIne)
}
Run Code Online (Sandbox Code Playgroud) 我希望能够将操作f: (T,T) => T应用于Option[T]Scala中的值.我希望结果是None两个值中的任何一个None.
更具体地说,我想知道是否有更短的方法来执行以下操作:
def opt_apply[T](f: (T,T) => T, x: Option[T], y: Option[T]): Option[T] = {
  (x,y) match {
    case (Some(u),Some(v)) => Some(f(u,v))
    case _ => None
  }
}
Run Code Online (Sandbox Code Playgroud)
我试过了,(x zip y) map {case (u,v) => f(u,v)}但结果Iterator[T]却不是Option[T].
在许多示例中,描述了您可以使用scala.io.Source来读取整个文件,如下所示:
val str = scala.io.Source.fromFile("test.txt").mkString()
Run Code Online (Sandbox Code Playgroud)
但没有提到关闭底层流.为什么Scala没有提供方便的方法来执行此操作,例如Python中的with子句?它看起来很有用但并不困难.
有没有其他更好的方法在Scala中安全地执行此操作,我的意思是读取整个文件?