小编om-*_*nom的帖子

语法sugar:_*用于将Seq作为方法参数处理

我刚在网上注意到这个构造:

val list = List(someCollection: _*)
Run Code Online (Sandbox Code Playgroud)

什么_*意思?这是一些方法调用的语法糖吗?我的自定义类应满足哪些约束才能利用这种语法糖?

scala syntactic-sugar

47
推荐指数
2
解决办法
2万
查看次数

如何在Option [String]中设置字符串?

当我试图在Option [String]类型的字段中影响String类型的值时,我收到以下错误:

type mismatch; found : String required: Option[String]
Run Code Online (Sandbox Code Playgroud)

我怎样才能影响myValue:String到现场的价值myField:Option[String]

scala

47
推荐指数
4
解决办法
4万
查看次数

对List中的值求和

我正在尝试编写一个scala函数,它将递归地对列表中的值求和.这是我到目前为止:

  def sum(xs: List[Int]): Int = {
    val num = List(xs.head)   
    if(!xs.isEmpty) {
      sum(xs.tail)
    }
    0
   }
Run Code Online (Sandbox Code Playgroud)

我不知道如何将各个Int值相加作为函数的一部分.我正在考虑在函数sum中定义一个新函数,并使用一个局部变量,该函数在List迭代时对值进行求和.但这似乎是一种必要的方法.有替代方法吗?

scala

47
推荐指数
6
解决办法
8万
查看次数

尾递归风格的代码不是吗?

我对Scala的新手在尝试阅读David Pollack的Beggining Scala时有点新意.他定义了一个简单的递归函数,它从文件中加载所有字符串:

def allStrings(expr: => String): List[String] = expr match {
    case null => Nil
    case w => w :: allStrings(expr)
}
Run Code Online (Sandbox Code Playgroud)

它优雅而且很棒,只是当我试图加载一个庞大的字典文件时它抛出了一个StackOverflow异常.

现在据我所知,Scala支持尾递归,因此函数调用不可能溢出堆栈,可能编译器无法识别它?所以经过一些谷歌搜索后我尝试了@tailrec注释来帮助编译器,但它说

error: could not optimize @tailrec annotated method: it contains a recursive call not in tail position
def allStrings(expr: => String): List[String] =
Run Code Online (Sandbox Code Playgroud)

我理解尾递归错了吗?我该如何修复此代码?

functional-programming scala tail-recursion

45
推荐指数
2
解决办法
8762
查看次数

从字符串生成一个类并在Scala 2.10中实例化它

在Scala 2.10中如何从字符串生成一个类(可能使用Toolbox api)以后用Scala的反射进行实例化?

reflection scala toolbox scala-2.10

45
推荐指数
1
解决办法
1万
查看次数

没有REPL重启的任何方式添加依赖项lein项目?

我现在要做的就是打开project.clj,添加依赖那里,运行lein deps重启REPL,那么use,require等等.

问题是我真的不想重新启动repl,因为启动时间很慢,我不得不重新加载我的文件.

那么是否有更好的方法为lein项目添加依赖?没有重新启动repl?

clojure leiningen

45
推荐指数
2
解决办法
9450
查看次数

在Java中以HTTP格式获取日期

我正在尝试以HTTP 1.1中指定的格式获取Java中的日期字符串.据我所知,这是:

1999年12月31日星期五,格林威治标准时间23:59:59

随着时间一直是格林尼治标准时间.

什么是最简单的方法从日期/日历/?

java time date http

44
推荐指数
6
解决办法
3万
查看次数

Java和Clojure与Leiningen合作

是否有可能在使用leiningen的项目中与Clojure一起轻松管理和编译本机Java类?

我工作在一个相当低的水平(使用netty nio),并认为一些管道类实际上更容易处理作为原始java在构造代码和性能方面.

java integration clojure leiningen clojure-java-interop

42
推荐指数
3
解决办法
1万
查看次数

将Java Map转换为Scala Map

我有一个java地图:java.util.Map<SomeObject, java.util.Collection<OtherObject>> 我想将它转换为scala地图:Map[SomeObject, Set[OtherObject]]

我使用了mapAsScalaMap,但结果并不是我想要的,结果是:Map[SomeObject, java.util.Collection[OtherObject]].如何修复它以将集合转换为集合?

注意:实际上我的原始问题是将谷歌转换ArrayListMultimap<SomeObject, OtherObject>为a,MultiMap[SomeObject, OtherObject]但由于这是不可能的,我已经解决了问题.如果您有原始问题的解决方案,我也会接受它作为答案.

java scala type-conversion scala-java-interop scala-collections

41
推荐指数
2
解决办法
3万
查看次数

Scala:XML空白删除?

有人知道一个好的scala库可以从XML中删除/压缩空格吗?

<foo>
  <bar>hello world</bar>
  <baz>  xxx  </baz>
</foo>

至:

<foo><bar>hello world</bar><baz>xxx</baz></foo>

xml whitespace scala

40
推荐指数
1
解决办法
6096
查看次数