小编Max*_*ime的帖子

如何在Scala中复制列表

我想浅谈Scala中的列表.

我想做像:

val myList = List("foo", "bar")
val myListCopy = myList.clone
Run Code Online (Sandbox Code Playgroud)

但克隆方法受到保护.

scala copy list shallow-copy

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

如何在Scala中调用函数

我正在尝试在List.foreach中调用2参数函数,并为循环修复第一个参数.实际上我想把两个参数的函数调成一个参数的函数,该函数返回一个参数的函数(如List.foldLeft do)

这不起作用:

private def mathFunc1(a: Double, b: Double) =
    println(a + b)


def eval(v: Double) = {
    List(1.0, 2.0, 3.0).foreach(mathFunc1(2.1))
}
Run Code Online (Sandbox Code Playgroud)

这有效:

private def mathFunc2(a: Double)(b: Double) =
    println(a + b)


def eval(v: Double) = {
    List(1.0, 2.0, 3.0).foreach(mathFunc2(2.1))
}
Run Code Online (Sandbox Code Playgroud)

但是我不想改变mathFunc1的签名,所以我想做类似的事情:

private def mathFunc1(a: Double, b: Double) =
    println(a + b)


def eval(v: Double) = {
    List(1.0, 2.0, 3.0).foreach(CONVERT_TWO_PARAMS_TO_ONE_ONE(mathFunc1)(2.1))
}
Run Code Online (Sandbox Code Playgroud)

functional-programming scala currying

12
推荐指数
1
解决办法
2373
查看次数

CouchDB 只写数据库

我正在尝试设置一个 CouchDB 数据库,该数据库可以公开写入并且只能由“管理员”角色读取。我怎样才能做到这一点。是否有类似validate_doc_update的访问文档的功能?

couchdb writeonly

5
推荐指数
1
解决办法
1445
查看次数

发生编译错误时如何在Emacs编译模式中突出显示源

我阅读了有关编译模式的文档,但我没有找到任何技术来高亮显示编译错误的源代码.

例如,更改产生编译错误的源代码的背景颜色(如Eclipse或Netbeans中的红色下划线).还有一种在某处读取错误消息的方法.

emacs compilation compilationmode

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

Scala:比较新鲜物体

我正在浏览scala测试,我不明白为什么编译器在比较"两个新鲜对象"时会产生警告.

这是测试'输出:http: //lampsvn.epfl.ch/trac/scala/browser/scala/trunk/test/files/neg/checksensible.check

例:

checksensible.scala:12: warning: comparing a fresh object using `!=' will always yield true
println(new Exception() != new Exception())
                        ^
Run Code Online (Sandbox Code Playgroud)

如果我编写一个实现==方法的类,它也会产生这个警告:

class Foo(val bar: Int) {
    def ==(other: Foo) : Boolean = this.bar == other.bar
}

new Foo(1) == new Foo(1)

warning: comparing a fresh object using `==' will always yield false
Run Code Online (Sandbox Code Playgroud)

编辑:谢谢oxbow_lakes,我必须覆盖equals方法,而不是==

class Foo(val bar: Int) {
    override def equals(other: Any) : Boolean = other match { 
        case other: Foo => this.bar …
Run Code Online (Sandbox Code Playgroud)

compiler-construction scala compiler-warnings

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